Insertion Sort List

 

 运用链表进行插入排序。

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;
    }
};

  

posted @ 2021-04-11 19:49  章大佬  阅读(24)  评论(0)    收藏  举报