リンクリスト2の終わりにリンクリスト2をマージするはずのコードで何が欠けているのかを理解しようとしています。今すぐ2番目のリストの最後の要素を取得しています。それを返す。Javaを使用して2つのリンクリストを結合する
私が使用しようとしていたロジックは、最初のリスト(L1)を歩いていて、それらの要素を1つずつnew_listに追加してから、2番目のリスト(L2)に対して同じことをやっています。 L1。私はL1やL2の変更を避けようとしています。これがnew_listを作成した理由です。
ご協力いただければ幸いです。
public NodeList(int item, NodeList next) {
this.item = item;
this.next = next;
}
public static NodeList merge(NodeList l1, NodeList l2) {
NodeList new_list = new NodeList(l1.item, l1.next);
NodeList new_list2 = new NodeList(l2.item, l2.next);
while (true) {
if (new_list.next == null) {
if (new_list2.next == null) {
return new_list;
}
else {
new_list.next = new NodeList(new_list2.next.item, new_list2.next.next);
new_list2 = new_list2.next;
}
}
else {
new_list.next = new NodeList(new_list.next.item, new_list.next.next);
new_list = new_list.next;
}
}
}
あなたのwhileループは決して終了しません –
'Node'と' NodeList'の概念を混在させているようです。 –
@SeanPatrickFloyd両方のリストがnullの場合、コードは呼び出し元のメソッドに戻ります。 – azurefrog