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
| class Solution { public ListNode oddEvenList(ListNode head) { if (head == null) { return null; } if (head.next == null) { return head; }
ListNode oddHead = head, evenHead = head.next; ListNode p1 = oddHead, p2 = evenHead; ListNode tail = null; while (true) { if (p2.next == null) { tail = p1; break; } if (p2.next.next == null) { p1.next = p2.next; p2.next = null; tail = p1.next; break; } ListNode tmp = p2.next.next; p1.next = p2.next; p2.next = tmp; p1 = p1.next; p2 = p2.next; } tail.next = evenHead; return oddHead; } }
|