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
prevandcurrforward.
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;
}
}