Skip to content

Reverse Linked List

Topic: 08. Linked Lists

Link: LeetCode 206 - Reverse Linked List

1. Logical Breakdown

  • [x] Core Logic: curr.next = prev.
  • [x] Move: Shift prev and curr forward.

2. Visualization

graph LR A["1 -> 2 -> 3"] --> B["1 <- 2 <- 3"]

3. Complexity

  • Time: O(N)
  • Space: O(1)

4. Code

package com.dsa.linkedlists;

public class ReverseLinkedList {
    public static class ListNode {
        int val;
        ListNode next;
        ListNode(int val) { this.val = val; }
    }

    public ListNode solve(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        while (curr != null) {
            ListNode nextTemp = curr.next;
            curr.next = prev;
            prev = curr;
            curr = nextTemp;
        }
        return prev;
    }
}