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

删除有序链表中重复的元素-I

题目链接:删除有序链表中重复的元素-I
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        // write code here
        //头结点
        ListNode *h = new ListNode(-1);
        h->next = head;
        //当下一个节点和下下个节点存在的时候
        while(h->next&&h->next->next)
        {
            //比较值 相等就删除下下个,保留下个
            if(h->next->val==h->next->next->val)
            {
                h->next->next = h->next->next->next;
            }//若是不等就跳到下一个元素比较
            else
            {
                h = h->next;    
            }
        }
        return head;
    }
};

删除有序链表中重复的元素-II

题目链接:删除有序链表中重复的元素-II
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        // write code here
        //设置头结点
        ListNode *dummy = new ListNode(-1);
        dummy->next = head;
        ListNode *pre = dummy;
        while(pre->next)//若是有下个元素
        {
            //如果有重复 如果下下个有元素 看下个和下下个是否相等 若相等
            if(pre->next->next&&pre->next->val==pre->next->next->val){
                int t = pre->next->val;
                //将相等的都删掉
                while(pre->next&&pre->next->val==t)
                {
                    pre->next = pre->next->next;
                }
            }
            else//不相等的话就跳下一个元素
            {
                pre = pre->next;    
            }
        }
        return dummy->next;
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值