リンクリストの挿入メソッドを書いていて、わかりにくいものが1つ見つかりました。リンクされたリストを経由して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であることを知っている、それは参照を保持していません。ありがとうございました! –