首页 > 编程语言 > 详细

对链表进行插入排序

时间:2021-08-04 22:32:40      阅读:25      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

变量简洁正确完整思路

画图,链表题画图,原始变量中间变量修改指针修改原始变量,一般开头和结尾容易错,修改指针容易错,原始变量越少越好这道题是ok,中间变量多一点i、pre、cur、nex,结尾的修改指针也很重要技术分享图片

 

 技术分享图片

 

 

class Solution {
public:
    ListNode* insertionSortList(ListNode* head) {
        ListNode*dummy=new ListNode(-1,head);
        ListNode*ok=head;
        while(ok->next){
            ListNode*cur=ok->next,*nex=ok->next->next,*i=dummy;
            while(i->next->val<cur->val){
                i=i->next;
            }
            ListNode*pre=i->next;
            if(i==ok)ok=ok->next;
            else{
                i->next=cur;
                ok->next=nex;
                cur->next=pre;
            }
            //if(cur->val==0)cout<<i->val<<ok->val;
        }
        return dummy->next;
    }
};

 

对链表进行插入排序

原文:https://www.cnblogs.com/zhouzihong/p/15100476.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!