删除链表的相同元素
程序代码:
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; } 我想删除一个节点 的相同元素,编译没有问题,就是删除不聊,我输入什么链表,返回的还是以前的