Given the head of a singly linked list, reorder it so the nodes appear in the pattern:
L0 -> Ln -> L1 -> Ln-1 -> L2 -> Ln-2 -> ...
The list should be rearranged by rewiring pointers, not by changing node values.