LeetCode82删除链表中重复的节点2018_1205_0226 ;2018_1206_1555

  class Solution {
  public:
	  ListNode* deleteDuplicates(ListNode* head) {
		  if(!head) return nullptr;
		  if(head->next==nullptr) return head;
		  ListNode  helpNode(0);
		  helpNode.next=head;
		  ListNode* first=&helpNode;
		  ListNode* second=head;
		  ListNode* third=head->next;
		  ListNode*	cur=&helpNode;

		  if(second->val!=third->val){
			  cur->next=second;
			  cur=cur->next;
		  }
		  first=first->next;
		  second=second->next;
		  third=third->next;      // 1 1 1 2 3

		  while(third){
			  if(second->val!=first->val&&second->val!=third->val){
				  cur->next=second;
				  cur=cur->next;
			  }
			  first=first->next;
			  second=second->next;
			  third=third->next;
		  }
		  if(second->val!=first->val){
			  cur->next=second;
			  cur=cur->next;
		  }
		  cur->next=nullptr;
		  return helpNode.next; 
	  }
  };

在这里插入图片描述

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if(head==nullptr) return nullptr;
        ListNode helpNode(0);
        helpNode.next=head;
        ListNode* cur=head;
        ListNode* pre=&helpNode;
        while(cur){
            while(cur->next&&cur->val==cur->next->val){          
                cur=cur->next;
            }
            if(pre->next==cur){
                pre->next=cur;
                pre=pre->next;
            }else{
                pre->next=cur->next;
            }
            cur=cur->next;
        }
        return helpNode.next;
    }
};

没在意cur->next->val漏了cur->next判空
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值