Insertion Sort List
Sort a linked list using insertion sort.
思路一:
使用一个dummy node,将就的节点插入到新的链表中即可。
1 public ListNode insertionSortList(ListNode head) { 2 ListNode dummy = new ListNode(0); 3 while(head != null) { 4 ListNode pre = dummy; 5 // 这里要用<= 来保证算法的稳定性 6 while(pre.next != null && pre.next.val <= head.val) { 7 pre = pre.next; 8 } 9 // 将头结点从旧链表拿出,插入到新的链表中的应该在的位置 10 ListNode next = head.next; 11 head.next = pre.next; 12 pre.next = head; 13 head = next; 14 } 15 return dummy.next; 16 }