[LeetCode] 143. Reorder List
Given a singly linked list L : L 0 → L 1 →…→ L n -1 → L n , reorder it to: L 0 → L n → L 1 → L n -1 → L 2 → L n -2 →… You must do this in-place without altering the nodes' values. For example, Given {1,2,3,4} , reorder it to {1,4,2,3} . Thought process: The idea is to split the list into two halves, reverse the second half, and merge them back together. Solution: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public void reorderList ( ListNode head ) { if ( head == null ) { return ; } ListNode middle = findMiddle ( head ); ListN...