解题思路:
(1)防止删除头结点,新插入头结点
(2)三指针
class Solution {
public:
/**
*
* @param head ListNode类
* @return ListNode类
*/
ListNode* deleteDuplicates(ListNode* head) {
if(head==nullptr) return head;
ListNode *new_head=new ListNode(0);
new_head->next=head;
ListNode *pre=new_head,*next=head->next;
while(next) {
if(head->val==next->val) {
while(next!=nullptr && head->val==next->val) {
head=head->next;
next=next->next;
}
if(next!=nullptr) {
pre->next=next;
head=next;
next=next->next;
} else {
pre->next=nullptr;
}
} else {
pre=head;
head=next;
next=next->next;
}
}
return new_head->next;
}
};