cxk521aoligei
2021-08-26 18:38
采纳率: 100%
浏览 50

c语言程序设计动态链表删节点问题

这段代码想用来删除链表中的节点,但是不能删除第一个节点的数据,其他的可以删除,希望帮忙改一下。
代码如下
img

  • 收藏

3条回答 默认 最新

  • qzjhjxj 2021-08-26 19:48
    已采纳

    struct Student *p1=head,*p2=NULL;

    已采纳该答案
    打赏 评论
  • orange4reg 2021-08-26 22:27

    head头节点别使用即可,就是head->next才是第一个节点
    bool delete(struct Student *head)
    {
    struct Student *p1=head, p2;
    while(p1->next&&p1->next->num!=b) p1=p1->next;
    if(!p1->next) return false;//没有找到该学号
    p2=p1->next;
    p1->next=p2->next;
    free(p2);
    return true;
    }

    打赏 评论
  • ThXe 2021-08-27 14:35

    需要创建一个虚拟节点,虚拟节点next指向第一个节点(头节点),如果需要删除头节点则虚拟节点->next=虚拟节点>next->next,返回虚拟节点->next即可

    打赏 评论

相关推荐 更多相似问题