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
| class Solution { public ListNode insertionSortList(ListNode head) { ListNode dummyHead = new ListNode(Integer.MIN_VALUE, head); ListNode orderedTail = head, curr = head.next;
while (curr != null) { if (curr.val >= orderedTail.val) { orderedTail = curr; curr = curr.next; } else { ListNode next = curr.next;
orderedTail.next = next;
ListNode pre = dummyHead; while (pre.next.val < curr.val) { pre = pre.next; } curr.next = pre.next; pre.next = curr;
curr = next; } }
return dummyHead.next; } }
|