← BACK TO KNOWLEDGE
KNOWLEDGE
Reverse Linked List: Three-Pointer In-Place Reversal
— views— comments
How to reverse a singly linked list in-place using prev, curr, and next pointers with O(1) auxiliary space.
INTERACTIVE ALGORITHM WORKBENCH
Reverse Linked List Visualizer
EasyLinked List & PointersTime O(n)Space O(1)
HEADcurr
1
•
⟶
2
•
⟶
3
•
⟶
4
•
⟶
5
•
✕ null
prevnull
currNode 1
nextnull
Reversal StateInitialized
1def reverse_list(head):▶2 prev = None3 curr = head4 while curr:5 next_node = curr.next6 curr.next = prev7 prev = curr8 curr = next_node9 return prevWHY THIS STEP WORKS
To reverse in-place with O(1) space, we maintain three pointers: prev (already reversed tail), curr (node being reversed), and next (rest of original list).
- 1Initialize prev = null
- 2Initialize curr = head (Node 1)
- 3Prepare three-pointer reversal loop
Comments