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     }

 

posted on 2015-03-24 17:00  绿树荫  阅读(175)  评论(0编辑  收藏  举报

导航