#### 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