Drgata 2020-01-02 11:46 采纳率: 85.7%
浏览 74

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

从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;
}

这一段有问题

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器