Concept Flow - Reverse a Singly Linked List Recursive
Start with head node
Base case: head == null or head.next == null?
|Yes
Return head as new head
No
Recursive call: reverse(head.next)
Reverse link: head.next.next = head
Set head.next = null
Return new head from recursion
Done
The recursion goes to the last node, then reverses links on the way back, setting each next node's next pointer back to current node.
