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 stm32开发clion时遇到的编译问题
    • ¥15 lna设计 源简并电感型共源放大器
    • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
    • ¥15 Vue3地图和异步函数使用
    • ¥15 C++ yoloV5改写遇到的问题
    • ¥20 win11修改中文用户名路径
    • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
    • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
    • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
    • ¥15 帮我写一个c++工程