您的位置:首页 > 其它

[leetcode]单链表插入排序

2014-04-20 14:34 435 查看
给出一个单向链表,只有表头,使用插入排序的方法给他排序,被这道题磨了好久,不熟悉单链表以及指针,还是需要多多练习

struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};

ListNode *insertionSortList(ListNode *head)
{
if(head==NULL) return NULL;
ListNode *cntnode=NULL,*prenode=NULL,*nextnode=NULL,*node=NULL;
cntnode=head->next;
head->next=NULL;
while(cntnode)
{
node=cntnode->next;
if(cntnode->val<head->val)
{
cntnode->next=head;
head=cntnode;
}
else
{
prenode=head;
nextnode=head->next;
while(nextnode&&(nextnode->val)<cntnode->val)
{
prenode=pre->next;
nextnode=nextnode->next;
}
prenode->next=cntnode;
cntnode->next=nextnode;
}
cntnode=node;
}
return head;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单链表 插入排序