Copied to Clipboard
Rearrange a linked list
Medium Accuracy: 49.14% Submissions: 29363 Points: 4

Given a singly linked list, the task is to rearrange it in a way that all odd position nodes are together and all even positions node are together.
Assume the first element to be at position 1 followed by second element at position 2 and so on.
Note: You should place all odd positioned nodes first and then the even positioned ones. (considering 1 based indexing). Also, the relative order of odd positioned nodes and even positioned nodes should be maintained.

Example 1:

LinkedList: 1->2->3->4
Output: 1 3 2 4 
Odd elements are 1, 3 and even elements are 
2, 4. Hence, resultant linked list is 

Example 2:

LinkedList: 1->2->3->4->5
Output: 1 3 5 2 4 
Odd elements are 1, 3, 5 and even elements are
2, 4. Hence, resultant linked list is

Your Task:
The task is to complete the function rearrangeEvenOdd() which rearranges the nodes in the linked list as required and doesn't return anything.

Expected Time Complexity: O(N).
Expected Auxiliary Space: O(1).

1 ≤ Size of the linked list ≤ 104
0 ≤ value of linked list ≤ 103

We are replacing the old Disqus forum with the new Discussions section given below.
Click here to view old Disqus comments.

to report an issue on this page.


We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?


All Submissions

My Submissions:

Login to access your submissions.

Rearrange a linked list

Output Window