首页 > 编程语言 > 详细

删除排序链表中的重复元素

时间:2021-07-31 00:39:42      阅读:18      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

 详细思路

leftright,left是已经好了,right是需要判断,相等right++,不相等left连上去,++  ++;
 
画图技术分享图片

 

 

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if(!head||!head->next)return head;
        ListNode*left=head;
        ListNode*right=left->next;
        while(right){
            while(right->next&&right->val==left->val)right=right->next;
            if(!right->next){
                if(right->val==left->val){
                    left->next=nullptr;
                    return head;
                }
                else{
                    left->next=right;
                    return head;
                }
            }
            if(right){
                left->next=right;
                left=right;
                right=right->next;
            }
        }
        return head;
    }
};
踩过的坑
链表题代码不重要,必须画图,最重要的是处理好如何结束,就是找到一个地方插入if  return  else  return
           if(!right->next){
                if(right->val==left->val){
                    left->next=nullptr;
                    return head;
                }
                else{
                    left->next=right;
                    return head;
                }
            }

删除排序链表中的重复元素

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

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