Ich schreibe eine Einfügemethode für eine verkettete Liste und fand eine Sache schwer zu verstehen. Es funktioniert, wenn mit diesem Code durchlaufen:Traversing durch eine verkettete Liste in 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;
}
aber wenn ich die while-Schleife zu ändern:
while(conductor != null){
conductor = conductor.next;
}
conductor = new Node(data);
Es funktioniert nicht. Und ich verstehe nicht, was der Unterschied ist. Kann mir bitte jemand helfen?
Im ersten gefunden, nach dem 'while',' conductor' die letzten Element in der Liste. In der zweiten ist "Dirigent" "null" und nicht Teil der Liste. –
Lassen Sie mich das klarstellen: Sie haben den Code in etwas anderes geändert, und dann fragen Sie sich, warum es anders ist? Warum nimmst du nicht ein Beispiel für eine kurze Liste und arbeitest auf Verlierer, was es tut? –
Ich sehe! Ich habe null falsch verstanden. Ich dachte, dass der Nullpunkt, auf den der letzte Knoten zeigt, eine Referenz hat, so dass, solange der Leiter auf diese Null zeigt, er Teil der Liste sein wird.Jetzt weiß ich, dass null null ist, es enthält keine Referenz. Vielen Dank! –