1.带头结点递增有序单链表L,删除表中相同元素
void Delete(LinkList &L){
LinkList p=L->next;
LinkList q;
while(q){
q=p->next;
if(p->data!=q->data){
p=p->next;
q=q->next;
}
else{
p->next=q->next;
free(q);
}
}
}
2.带头结点无序单链表L,删除表中相同元素
void Delete(LinkList &L){
LinkList p=L->next;
LinkList q,pre,t;
while(p){
pre=p; //q的前驱结点pre
q=p->next;
while(q){ //查找链表中有无和p值相同的结点
if(p->data!=q->data){
q=q->next;
pre=pre->next;
}
else{ //找到则删除
t=q;
q=q->next;
pre->next=q;
free(t);
}
}
p=p->next; //继续判断下一个结点
}
}