DEV Community

Jonah Blessy
Jonah Blessy

Posted on

CA 22 - Reverse a Linked List

Problem Statement: here

Solution:

  • The process starts from the head of the linked list and moves through each node one by one until the end is reached.
  • During traversal, the direction of each node’s link is changed so that instead of pointing to the next node, it points to the previous node.
  • Before changing any link, the next node is temporarily stored to avoid losing access to the remaining part of the list.
  • After reversing the link of the current node, the pointers are shifted forward so the process can continue with the next node.
  • This step-by-step reversal is repeated for every node in the list until there are no more nodes left to process.
  • By the end of this process, all connections between nodes are reversed, and the last processed node becomes the new head of the linked list.
def reverseList(head):
    prev = None
    curr = head
    while curr:
        nxt = curr.next
        curr.next = prev
        prev = curr
        curr = nxt
    return prev
Enter fullscreen mode Exit fullscreen mode

Top comments (0)