ユーザが作成したリンクリストの末尾に新しい要素を挿入しようとしています。ソリューション1が失敗したが、解決策2作品を、私は把握することはできませんよ、なぜ:リンクリストへの挿入がJavaで失敗する
class Node {
int data;
Node next;
}
解決方法1:
Node Insert(Node head,int data) {
if(head == null) {
head = new Node();
head.data = data;
head.next = null;
} else {
Node elem = head;
while(elem != null) {
elem = elem.next;
}
elem = new Node();
elem.data = data;
elem.next = null;
}
return head;
}
解決方法2:
Node Insert(Node head,int data) {
if(head == null) {
head = new Node();
head.data = data;
head.next = null;
} else {
Node elem = head;
while(elem.next != null) {
elem = elem.next;
}
elem.next = new Node();
elem = elem.next;
elem.data = data;
elem.next = null;
}
return head;
}
どうして失敗するのですか?実行時に例外が発生していますか?あなたは、問題が何であるか、それをどのように解決しようとしたかについて、より詳細な情報を提供する必要があります。 –
解決策1では、次の文で 'elem'の値を破棄するときに' while'ループの目的は何ですか? *ヒント:その質問に対する答えはあなたの質問に対する答えです。* – Andreas
* BTW:* 'head.next = null;'と 'elem.next = null;'は冗長です。 'next'はすでに新しい' Node'でnullです。 – Andreas