Input:
2 4 5 -1
Output:
5 4 2 -1
Explanation: 2->4->5 is the initial linked list. If we reverse this, we get 5->4->2.
The first line contains the elements of the singly linked list separated by a single space and terminated by -1. Hence, -1 would never be a list element.
Print the reversed linked list. The elements of the reversed list should be single-space separated, terminated by -1.
You do not need to print anything, just return the head of the reversed linked list.
One way is to use recursion to reverse the list. Divide the linked list in two halves, the first node and the rest of the list. Reverse the second half using recursion and append the first half, that is the first node at the end of the reversed linked list. Return the head of the reversed linked list.
Reverse the link of each node, starting from the head and moving towards the tail of the linked list. Take three-pointers, ‘curr’, ‘ahead’, ‘prev’. Initialize curr with the head node, ahead, and prev with NULL. Keep on iterating the linked list until ‘curr’ reaches NULL. Store the next node of the current node in ‘ahead’ before changing the next of the current node and point the next of the current node to ‘prev’ (pointer to the node just before the current node). This is the actual reversing of the links in the linked list. Point ‘prev’ node to ‘curr’ node and ‘curr’ node to ‘ahead’ node. At the end return the head of the reversed linked list.
Deletion In Doubly Linked List
Deletion In Doubly Linked List
Insertion In Doubly Linked List
Insertion In Doubly Linked List
LRU Cache
Delete Nodes On Regular Intervals
Add One To Linked List