Java教程

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

本文主要是介绍删除排序链表中的重复元素,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 

 详细思路

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;                 }             }
这篇关于删除排序链表中的重复元素的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!