/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
bool _d=false;
if(!head) return head;
ListNode *p=head,*nex=head->next,*H=new ListNode(0),*pre=H;
pre->next=head;
while(nex){
if(p->val==nex->val) p->next=nex->next,delete(nex),nex=p->next,_d=true;
else if(_d) _d=false,pre->next=nex,delete(p),p=nex,nex=nex->next;
else pre=p,p=nex,nex=nex->next;
}
if(_d) pre->next=nex,delete(p);
head=H->next,delete(H);
return head;
}
};
Leetcode 82. 删除排序链表中的重复元素 II
最新推荐文章于 2022-10-22 15:27:15 发布