This post is the extension of our earlier post Reverse a linked list. Here We have provided the better recursive solution in which we start reversing the list from the end.
Objective: Reverse the given linked list.
Input: A Linked List
Output: Reversed Linked List
Original List :->10->8->6->4->2 Reversed List :->2->4->6->8->10
- Traverse till the end of list through recursion.
- Make the last node as head.
- Now you are at the end of the list and rest of the nodes are stores in a stack
- Now while coming back, each node will pop out from the stack in reverse order
- take these nodes and start pointing it to next node coming out of stack.
Output: Original List : ->10->8->6->4->2 Reversed List : ->2->4->6->8->10