For a given Singly Linked List of integers, you are required to reverse alternate nodes and append them to the end of the list.
For Example:
The given linked list is 1->2->3->4 then after reversing the alternate nodes we will have 1->3->4->2.
Assuming 0 based indexing, odd indexed nodes are the alternate nodes that is, in the given linked list the node with value 2 and the node with value 4 are the alternate nodes.
List without alternate nodes: 1->3
List with alternate nodes: 2->4
Reversing the list with alternate nodes: 4->2
After appending the reversed alternate nodes at the end, the updated list will be 1->3->4->2.
Input format :
The first and the only line of input contains the elements of the singly linked list separated by a single space and terminated by -1 and hence -1 would never be a list element.
Output format :
For each test case, print a single line containing space-separated integers denoting the elements of the resultant linked list and ending with -1 denoting the end of the linked list.
The output of each test case will be printed in a separate line.
Note:
You do not need to print anything; it has already been taken care of. Just implement the given function.
Constraints :
0 <= N <= 10 ^ 6
-10 ^ 9 <= DATA <= 10 ^ 9 and DATA != -1
Where 'N' is the number of nodes in the linked list.
Time Limit: 1 sec.