
运用链表进行插入排序。
class Solution {
public:
ListNode* insertionSortList(ListNode* head)
{
if(head==NULL)
{
return head;
}
ListNode* oldhead=new ListNode(0);
oldhead->next=head;
ListNode*last=head;
ListNode*curr=head->next;
while(curr!=NULL)
{
if(last->val<=curr->val)
{
last=last->next;
}
else
{
ListNode*prev=oldhead;
while(prev->next->val<=curr->val)
{
prev=prev->next;
}
last->next=curr->next;
curr->next=prev->next;
prev->next=curr;
}
curr=last->next;
}
return oldhead->next;
}
};
原文:https://www.cnblogs.com/zhangdalao/p/14645204.html