leetcode_Sort a linked list using insertion sort.

	/*
	 * Sort a linked list using insertion sort.
	 * */
    public ListNode insertionSortList(ListNode head) 
    {
    	ListNode p = new ListNode(0);
    	ListNode phead = p;
    	while(head!=null)
    	{
    		p = phead; //reset p to the phead
    		while(p.next!=null)
    		{
    			if(p.next.val>head.val)
    			{
    				ListNode tmp = p.next;
    				p.next = head;
    				head = head.next; //here head next
    				p.next.next = tmp;
    				break;
    			}
    			p = p.next;
    		}
    		if(p.next == null)
    		{
    			p.next = head; 
    			head = head.next;//here head next
    			p.next.next = null;
    		}
    	}
    	return phead.next;
    }
    //插入排序
總結延伸:基於鏈式存儲的插入排序,前面有一個題目要求O(nlogn)時間複雜度和O(1)額外空間實現,利用二路歸併遞歸實現。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章