您的位置:首页 > 其它

leetcode[147]:Insertion Sort List

2015-06-25 19:02 369 查看
Insertion Sort List

Sort a linked list using insertion sort.

/**
* Definition for singly-linked list.
* struct ListNode {
*     int val;
*     struct ListNode *next;
* };
*/
struct ListNode* insertionSortList(struct ListNode* head) {
struct ListNode *L,*p,*tmp;
if(!head || !head->next) return head;
p = head->next;
L=head;
L->next = NULL;
while(p)
{
tmp=p;
p=p->next;
if(tmp->val < head->val)
{
tmp->next=head;
head=tmp;
}

else{

while(tmp->val > L->val)
{
if(!L->next) break;
if(L->next->val < tmp->val) L=L->next;
else break;
}
tmp->next=L->next;
L->next=tmp;
}
L=head;
}
return head;
}


直接插入排序。双指针?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  list