1. 程式人生 > >leetCode練習(147)

leetCode練習(147)

題目:Insertion Sort List

難度:medium

問題描述:

使用插入排序對List進行排序

求解思路:

從左到右,依次將node插入到左邊已經排好的list中

程式碼如下:

public static ListNode insertionSortList(ListNode head) {
        if(head==null || head.next==null) return head;
        ListNode p = head.next;
        head.next = null;
        while(p!=null){
        	ListNode pnext = p.next;
        	ListNode q = head;
        	if(p.val<=q.val){
        		p.next = q;
        		head = p;
        	}else{
        		while(q!=null && q.next!=null && q.next.val<p.val){
        			q = q.next;
        		}
        		p.next = q.next;
        		q.next = p;
        	}
        	p = pnext;
        }
        return head;
    }