C语言删除链表中的结点(每日一问)

在删除链表中的结点这个知识点里面:
q->next = p->next
是什么原理使结点删除的哇!

img

回答:链表的简单删除,思路如图:

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/670537
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:C语言错误:函数内变量的赋值出了函数就没了
  • 除此之外, 这篇博客: C语言链表相关操作中的 删除一个链表的第一个节点(不是删除头结点) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    void DeleteByTail(List L){
        Node* p = L->next,*temp;
        while (p->next->next != NULL) { //找到尾节点的前一个结点
            p = p->next;
        }
        //开始删除结点
        temp = p->next;
        p -> next = NULL;
        free(temp);
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^