题目:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5
, return 1->2->5
.
Given 1->1->1->2->3
, return 2->3
.
public:
ListNode *deleteDuplicates(ListNode *head) {
if(head==NULL||head->next==NULL) return head;
ListNode *t=new ListNode(-1);
ListNode *p=t;
while(head){
if(head->next&&head->val==head->next->val){
ListNode *temp=head->next;
while(temp->next&&temp->val==temp->next->val)
temp=temp->next;
head=temp;
p->next=temp->next;
}
else{
p->next=head;
p=p->next;
}
head=head->next;
}
return t->next;
}
};