我们需要记录前指针以及现指针并从头开始,所以通过一个前驱指针start start->next = head 进行循环
ListNode* deleteDuplicates(ListNode* head) {
if(head==NULL||head->next==NULL)return head;
ListNode* start = new ListNode(0);
start->next=head;
ListNode* pre = start;
while(pre->next){
ListNode* cur = pre->next;
while(cur->next!=NULL&&cur->val==cur->next->val)cur=cur->next; //有重复则next
if(cur!=pre->next)pre->next=cur->next; //判断是否有重复
else pre=pre->next;
}
return start->next;
}