Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com

Reverse Alternate Nodes of a Singly Linked List

Moderate
0/80
profile
Contributed by
10 upvotes
Asked in companies
FlipkartTata Consultancy Services (TCS)Rupeek

Problem statement

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. 
Detailed explanation ( Input/output format, Notes, Images )
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.
Sample Input 1 :
2 4 6 8 10 -1
Sample Output 1 :
2 6 10 8 4 -1
Explanation to Sample Input 1 :
The given linked list is 2->4->6->8->10 then after reversing the alternate nodes we will have 2->6->10->8->4.


Assuming 0 based indexing, odd indexed nodes are the alternate nodes that is, in the given linked list the node with value 4 and the node with value 8 are the alternate nodes. 

List without alternate nodes:  2->6->10 
List with alternate nodes:  4->8 
Reversing the list with alternate nodes: 8->4

After appending the reversed alternate nodes at the end, the updated list will be 2->6->10->8->4. 
Sample Input 2 :
-10 20 -1
Sample Output 2 :
 -10 20 -1
Full screen
Console