Linked List · Easy

Reverse Linked List

O(N) · O(1)

Initialize Pointers prev=null, curr=head

Reversing a singly linked list in-place by flipping every next pointer. Set prev = null, curr = node 0 (1).

Linked List Pointers
curr
1
2
3
4
5
null
Live Variables & Invariants
prev:null
curr:Node(1)
next:null
Step 1 / 16
6%
Solution Code
1
function reverseList(head: ListNode | null): ListNode | null {
2
  let prev: ListNode | null = null, curr = head;
3
  while (curr !== null) {
4
    const next = curr.next;
5
    curr.next = prev;
6
    prev = curr;
7
    curr = next;
8
  }
9
  return prev;
10
}
LeetCode IDE Console

Test Cases

4 cases from Blind 75 & NeetCode 150

Ask for a hint whenever you get stuck.