地址
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/submissions/
描述
思想
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode *dummy=new ListNode(-1);
dummy->next=head;
//p指针指向一段字符的前一个位置
ListNode *p=dummy;
//假如p后面有下一段
while(p->next){
//看下一段的第二个数
ListNode *q=p->next->next;
//假如q非空,且第二个数与第一个数相同,说明重复
while(q&&q->val==p->next->val) q=q->next;
//说明p指针没有动,说明没有重复
if(p->next->next==q) p=p->next;
else p->next=q;
}
return dummy->next;
}
};