由于是排好序的队列,所以处理起来相对简单
ListNode* deleteDuplicates(ListNode* head) {
ListNode*l2=new ListNode(0);
if(head==NULL)
return head;
if(head!=NULL&&head->next==NULL)
return head;
ListNode *l3=l2;
ListNode*last=head;
head=head->next;
int flag=0;
while(head!=NULL){
if(head->val!=last->val){
if(flag==0) {
l2->next = last;
l2=l2->next;
last = head;
head = head->next;
}else
{
if(head->next==NULL){
l2->next=head;
head=head->next;
}else {
flag = 0;
last = head;
head = head->next;
}
}
}
else if(head->val==last->val){
if(head->next==NULL){
l2->next=NULL;
head=head->next;
}else {
flag = 1;
last = head;
head = head->next;
}
}
}
return l3->next;
}