私は、データ構造に関連したアルゴリズムの解決に新しいですし、私は疑問に遭遇次のコードがわからないよ:LinkedListなぜここにダミーを作成する必要がありますか?
public ListNode swapPairs(ListNode head) {
ListNode dummy = new ListNode(0);
dummy.next = head;
head = dummy;
while (head.next != null && head.next.next != null) {
ListNode n1 = head.next, n2 = head.next.next;
head.next = n2;
n1.next = n2.next;
n2.next = n1;
head = n1;
}
return dummy.next;
}
私たちはここにダミーを作成しなければならないのはなぜ?
これについて私が助けてくれるなら、大きな助けになるでしょう。リンクされたリストに対して何らかの操作を実行する必要があるときも、同様の手順を実行しました。
を? 'swapPairs()'が何をすべきかの定義はありますか?期待された振る舞いが何であるかを知らずに、なぜそれがどういう形で書かれたのか、あなたにはわかりません。 –
こんにちは、これは質問です。それを見てください。ありがとう。リンクされたリストが与えられた場合、隣接する2つのノードごとにスワップし、そのヘッドを返します。たとえば、1-> 2-> 3-> 4と指定した場合は、リストを2-> 1-> 4-> 3に戻す必要があります。あなたのアルゴリズムは一定のスペースだけを使うべきです。リストの値を変更することはできません。ノード自体だけを変更することができます。 Java –
ループ内のコードを簡単にします。それ以外の場合は、ノードを変更するたびに、それが頭であるかどうかを心配する必要があります。 – EJP