# Question

Formatted question description: https://leetcode.ca/all/143.html

143	Reorder List

Given a singly linked list L: L0 → L1 → … → Ln-1 → Ln,
reorder it to: L0 → Ln → L1 → Ln-1 → L2 → Ln-2 →…

You must do this in-place without altering the nodes' values.

Example 1:

Given 1->2->3->4, reorder it to 1->4->2->3.

Example 2:

Given 1->2->3->4->5, reorder it to 1->5->2->4->3.



# Algorithm

Divided into the following three small questions:

1. Use the fast/slow pointers to find the midpoint of the linked list and disconnect the linked list from the midpoint to form two independent linked lists.
2. Reverse the second half of list.
3. Insert the elements of the second half linked list into the first linked list.

Java