Reverse a Linked List

Iterative in-place reversal with three pointers

Read Here
Step0 / 28
PhaseSetup
Nodes5
Result[]
Back To Linked List

Reverse Routine (Python)

2 def reverseList(self, head):
prev = None
4 curr = head
5
6 while curr:
7 next_node = curr.next
8 curr.next = prev
9 prev = curr
10 curr = next_node
11
12 return prev
Current Line (3): Initialize prev

Linked List Reversal

Start

Step

0 / 28

Phase

Setup

Reversed

0

null1next2next3next4next5nextcurr

Reversal Progress

Current Node

1

Phase

Setup

Reversed So Far

Reversed nodes appear here...
Press Next to initialize pointers.

Pointer State

prevNone
curr1
next_nodeNone

Why This Step Matters

Before each iteration: nodes before prev are reversed, nodes from curr onward are not.

Current Action

Initialize pointers: prev = None, curr = 1

Step Explanation

Start

Function Called

reverseList(head) starts. We set up prev and curr before touching any link.

  • > Phase: Setup
  • > Nothing is reversed yet.
  • > curr starts on the first node.
  • > Think of prev as reversed-so-far and curr as node-in-hand.
Unvisited
Current
Prev
Next Saved
Reversing
Done