2017-02-22 16 views
0

Я пытаюсь добавить узел в конец списка, и это то, что я придумал. Мне просто интересно, поставил ли я хвост, если это то же самое, что хвост = добавить? Или если у меня есть tail = head.next, если это то же самое, что tail = add? Заранее спасибоЯсность Java-Node

public BasicLinkedList<T> addToEnd(T data) { 
    Node add= new Node(data); 
    Node curr=head; 
    if(size==0){ 
     head= add; 
     tail=head; //is it okay to make this= head? Or should it be =add? 
    }else if(size==1){ 
     head.next=add; 
     tail=head.next; //is it okay to make this= head.next? Or should it be =add? 
    }else{ 
     while(head.next!= null){ 
      curr=head.next; 
     }curr.next = add; 
     tail = add; 
    } 
    size++; 
    return this; 

} 
+0

Я считаю, что у вас может быть логическая проблема. 'while (head.next! = null) {', это должно быть проверка 'curr.next', иначе вы окажетесь в бесконечном цикле, поскольку голова не меняется в цикле, поэтому она всегда будет истиной. –

+0

Подсказка: вам не нужен блок 'if (size == 1)'. – progyammer

ответ

2

Для ответа на

//is it okay to make this= head? Or should it be =add? 

Да либо в порядке, headadd являются ссылки на тот же объект.

и

//is it okay to make this= head.next? Or should it be =add? 

Опять же, либо в порядке здесь также, как и head.next и add ссылки на тот же объект.

+0

Это правильный ответ. – VHS

Смежные вопросы