运用链表进行插入排序。
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