我正在爲鏈表寫一個插入方法,並且發現有一件事很難理解。它的工作原理使用此代碼遍歷時:遍歷java中的鏈表
class Node {
int data;
Node next;
Node(int d) {
data = d;
next = null;
}
}
public static Node insert(Node head,int data) {
Node conductor = head;
if(conductor == null){
head = new Node(data);
}
else{
while(conductor.next != null){
conductor = conductor.next;
}
conductor.next = new Node(data);
}
return head;
}
,但如果我改變while循環:
while(conductor != null){
conductor = conductor.next;
}
conductor = new Node(data);
它不工作。我不明白有什麼不同。 任何人都可以幫忙嗎?
添加新節點在第一個,之後的'while','conductor'是最後一個元素在列表中。第二,'導體'是'空'而不是列表的一部分。 –
讓我明白這一點:您將代碼更改爲不同的代碼,然後您想知道爲什麼它不同?你爲什麼不舉一個短名單的例子來解決失敗者在做什麼? –
我明白了!我誤解了null。我認爲最後一個節點指向的null有一個引用,所以只要導體指向null,它就會成爲列表的一部分。現在我知道null是null,它不包含任何引用。謝謝! –