Reorder List

Reorder List

Given a singly linked list: A0→A1→…→An-1→An, reorder it to: A0→An→A1→An-1→A2→An-2→…

Given 1->2->3->4->5 its reorder is 1->5->2->4->3.
It is recommended do this in-place without altering the nodes’ values.

Algorithm:

  • Divide linked list into two equal parts by using by Runner algorithm {@link SplitCLL }
  • Reverse the second linked list {@link ReverseList }
  • Merge these linked list {@link SortedListMerger}

Latest Source Code:
Github: ReorderList.java


Output:

1 2 3 4 5 
1 5 2 4 3 
1 2 3 4 5 6 
1 6 2 5 3 4 
Author: Hrishikesh Mishra