Ich bin die Algorithmen auf die Datenstrukturen im Zusammenhang mit der Lösung, und ich bin nicht sicher, der folgende Code, den ich auf die Frage gestoßen:LinkedList Warum müssen wir hier den Dummy erstellen?
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;
}
Warum müssen wir hier den Dummy schaffen?
Es wäre eine große Hilfe, wenn Sie mir dabei helfen könnten. Ich habe ähnliche Schritte beobachtet, wenn Sie eine Operation in der verknüpften Liste ausführen müssen.
Wo haben diese Funktion her? Gibt es eine Definition dessen, was 'swapPairs()' tun soll? Wir können Ihnen nicht sagen, warum es auf eine bestimmte Art geschrieben wurde, ohne zu wissen, was das erwartete Verhalten ist. –
Hallo, das ist die Frage. Bitte sehen Sie es sich an. Vielen Dank. Bei einer verknüpften Liste tauschen Sie alle zwei benachbarten Knoten aus und geben ihren Kopf zurück. Zum Beispiel, gegeben 1-> 2-> 3-> 4, sollten Sie die Liste als 2-> 1-> 4-> 3 zurückgeben. Ihr Algorithmus sollte nur konstanten Speicherplatz verwenden. Sie dürfen die Werte in der Liste nicht ändern, nur Knoten selbst können geändert werden. Java –
Es macht den Code innerhalb der Schleife einfacher. Andernfalls müssten Sie sich bei jedem Knotenwechsel Gedanken darüber machen, ob es sich um den Kopf handelt oder nicht. – EJP