Algorithmusgratis
Verkettete Liste umkehren
Drehe jeden next-Zeiger an Ort und Stelle um, mit drei Zeigern: prev, curr und nxt.
- Zeit
- O(n)
- Speicher
- O(1)
// Schritt für Schritt
Schritt 1 / 14
1function reverse(head) {2 let prev = null, curr = head;3 while (curr !== null) {4 const nxt = curr.next;5 curr.next = prev;6 prev = curr;7 curr = nxt;8 }9 return prev;10}- nullprev
- 1curr
- 2
- 3
- 4
- null
prev startet bei null, curr am Kopf, 1.
So funktioniert es
Geh die Liste einmal durch. Merk dir bei jedem Knoten zuerst den nächsten, lass ihn dann auf den vorherigen zeigen und rücke beide Zeiger weiter. Wenn curr hinter das Ende fällt, ist prev der neue Kopf. O(n) Zeit und O(1) zusätzlicher Speicher.