this page ⟩ lc notes ⟩ collections ⟩ home

Reverse Linked List [LC#206]

Given the head of a singly linked list, reverse the list, and return the reversed list.

Iterative approach

     β”Œβ”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”
 <-- β”‚prevβ”‚    β”‚currβ”‚--> β”‚nextβ”‚-->
     β””β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”˜
     β”Œβ”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”
 <-- β”‚prevβ”‚ <--β”‚currβ”‚    β”‚nextβ”‚-->
     β””β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”˜
     β”Œβ”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”
 <-- β”‚    β”‚ <--β”‚prevβ”‚    β”‚nextβ”‚-->
     β””β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”˜
     β”Œβ”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”
 <-- β”‚    β”‚ <--β”‚prevβ”‚    |currβ”‚-->
     β””β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”˜
def fn(head):
    curr = head
    prev = None
    while curr:
        next_node = curr.next
        curr.next = prev
        prev = curr
        curr = next_node
    return prev

Time Complexity

  • $T(n) = O(n)$
  • $S(n) = O(1)$



tags: #linked list