1. 程式人生 > >Sort a linked list using insertion sort.

Sort a linked list using insertion sort.

思路:用一個新連結串列來執行插入排序,將新的節點插入到正確的位置;

程式碼:

public ListNode insertionSortList(ListNode head){
        if (head==null||head.next==null)return head;
        ListNode temp=new ListNode(Integer.MIN_VALUE);
        ListNode now=temp;
        ListNode cur=head;
        while (cur!=null){
            now=temp;//每次都從第一個節點開始比較
            ListNode next=cur.next;//選取要排序的連結串列的下一個節點
            while (now.next!=null&&now.next.val<cur.val){//判斷要選取插入的位置
                now=now.next;
            }
            cur.next=now.next;//插入節點
            now.next=cur;//插入節點
            cur=next;
        }

        return temp.next;//摒棄第一個自己new的節點
    }