大佬们为什么我的链表只能删除开头,删除不了中间?

从a链表中删除与b链表中有相同学号的节点

struct student *delete(struct student *p1,struct student *p2)
{
    struct student *head1,*head2,*p3,*temp;
    for(head1=p3=p1;p1!=NULL;p1=p1->NEXT){
        for(head2=p2;p2!=NULL;p2=p2->NEXT){
            if(p1->num==p2->num){
                if(p1==head1){
                    head1=head1->NEXT;
                }else{
                    temp=p1;
                    p3->NEXT=p1->NEXT;
                    free(temp);
                    p1=p3;
                    printf("here\n");
                }
            }
        }
        p3=p1;
    }
    return head1;
}

这一段有问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

4
问一个很愚蠢的基础问题,p=p->next链表循环里,为什么这样不会覆盖掉链表的值啊
1
为什么我的链表在运行时会卡死或者无法存取信息?
0
链表排序出了问题,求大佬帮忙看看
0
带环链表能逆置吗?为什么?
1
为什么链表自己断链了?
2
静态链表为什么实现不了数据反转,哪里错了,具体的代码如何实现?
1
leetcode876. 链表的中间结点。用javascript,为什么return是undefined?
1
Java语言的数组,如何增加和缩小长度,要实现动态的改变不想用链表了
2
Java语言编写程序一个链表,并且计算链表上所有数的和
2
我写的链表,每次到末尾插入的时候就会报错 调试的时候出现segmentation fault 请大佬看看时怎么回事
1
如何用C++创建一个可以存入小数的链表?
2
创建链表的时候,怎么也解决不了warning C4013和error C2371,希望大佬指教
2
编写一个函数,实现将一个带头结点的单向链表数据逆置,代码怎么写呀?
2
链表相关问题,不知道哪里出错了,求大佬看看?
1
请问一下,为什么我这个排序函数会出现链表末端的数据丢失?
2
链表地址为空问题,求大佬
1
c语言,链表,指针。求大佬指点!谢谢大家了!
1
今年刚刚学的C语言,没有学过链表希望大佬可以帮忙写一下源代码,谢谢了
2
Java单链表的问题,求大佬帮忙
0
Java语言设计实现一个链表的数据结构,不要使用现有的库的代码,并且插入5个数字再输出