EasyLinked Lists
Reverse Linked List
Reverse singly linked list
Solution Approach
Iteratively reverse pointers. Maintain three pointers: previous, current, next. Update current.next = previous, move previous and current forward.
Implementation
def reverseList(head):
prev = None
curr = head
while curr:
next_temp = curr.next
curr.next = prev
prev = curr
curr = next_temp
return prevComplexity Analysis
Time Complexity
O(n)Space Complexity
O(1)Key Learning Points
Three pointers: prev, curr, nextIterative reversalUpdate pointers during traversal
Related Problems to Practice
Reverse Linked List IIPalindrome Linked ListReorder List
Complexity
Time:O(n)
Space:O(1)
Asked at
GoogleAmazonFacebook