/*
* 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)額外空間實現,利用二路歸併遞歸實現。
leetcode_Sort a linked list using insertion sort.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.