Reverse a Linked List
Introduction Linked Lists are a fundamental data structure, and one of the most important operations is reversing a linked list. This problem helps you understand pointer manipulation, which is ess...

Source: DEV Community
Introduction Linked Lists are a fundamental data structure, and one of the most important operations is reversing a linked list. This problem helps you understand pointer manipulation, which is essential for mastering linked lists. Problem Statement Given the head of a linked list, reverse the list and return the new head. Example Input: 1 → 2 → 3 → 4 → 5 → NULL Output: 5 → 4 → 3 → 2 → 1 → NULL Intuition In an array, reversing is easy because we can access elements by index. But in a linked list: We only move forward So we must change the direction of links Key Idea We reverse the links by changing: current.next → previous Approach (Iterative) We use three pointers: prev → previous node curr → current node next_node → store next node Steps Initialize: prev = None curr = head Traverse the list: Store next node Reverse the link Move pointers forward Python Implementation class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def reverseList(head): prev = No