删除链表的相同元素
程序代码:struct Student *deletes(struct Student *p1){
struct Student *head,*p0,*p2,*p3,*temp;
int n,flag;
p2=p1;
p3=p1;
head=p2;//返回的是p2这个链表
while(p3!=NULL){
flag=0;
n=p3->num;
while(p2!=NULL){
if(p2->num != n){
p0=p2;//记录住前驱节点地址
p2=p2->next;
}else if(p2->num==n){
if(flag==1){
if(p2==head){
head=p2->next;
}else{
temp=p2;//为了可以释放内存
p0->next=p2->next;
p2=p2->next;
free(temp);
}
}else if(flag==0){//判断这个节点是不是第一次出现
flag=1;
p0=p2;
p2=p2->next;
}
}
}
p3=p3->next;
}
return head;
}
我想删除一个节点 的相同元素,编译没有问题,就是删除不聊,我输入什么链表,返回的还是以前的






