How can you reverse a linked list iteratively and recursively?

DSA
Medium
65.1K views

This question requires implementing the reversal of a singly linked list using both iterative pointer manipulation and recursive stack unwinding techniques.

Why Interviewers Ask This

Reversing a linked list is fundamental to testing a candidate's grasp of pointer manipulation and recursion depth limits. Interviewers want to see if you understand how memory references work in a linked structure. Iterative solutions demonstrate control flow mastery, while recursive solutions test understanding of the call stack and base cases. It is often a precursor to more complex problems involving graph traversal or tree rotations.

How to Answer This Question

First, describe the iterative approach using three pointers: previous, current, and next. Draw a mental picture of how pointers flip direction node by node. Then, transition to the recursive approach, explaining how the function calls itself until the end of the list is reached. Compare the space complexity differences between the two methods. Ensure you mention edge cases like empty lists or single-node lists.

Key Points to Cover

  • Pointer manipulation mechanics
  • Base case identification for recursion
  • Space complexity comparison
  • Edge case handling for null inputs

Sample Answer

Iteratively, I maintain three pointers: prev, curr, and next. I move forward through the list, reversing the next pointer of the current node to point to the previous node. After the loop, the previous pointer becomes th…

Common Mistakes to Avoid

  • Creating a cycle by pointing the last node back to the first incorrectly
  • Forgetting to update the head pointer after reversal
  • Stack overflow errors in deep recursive calls

Sound confident on this question in 5 minutes

Answer once and get a 30-second AI critique of your structure, content, and delivery. First attempt is free — no signup needed.

Try it free

Related Interview Questions

Browse all 127 DSA questions