c - 链表 : how to delete last node, 我们有指向单个链表中最后一个节点的指针

标签 c linux data-structures linked-list

在单链表中,我们可以删除一个持有指针指向它的节点。 这可以通过将下一个节点数据复制到当前节点直到我们到达终点来实现。

但是,我们如何通过持有并知道指向 self 的指针来删除最后一个节点?

-谢谢

最佳答案

这通常是不可能的。您需要最后一个节点之前的节点地址。此节点应将其 next 指针设置为 NULL。单向链表中的最后一个节点不能直接访问最后一个节点。

但是,如果您有权访问head 节点,则可以再次遍历列表以获取最后一个节点之前的节点。

关于c - 链表 : how to delete last node, 我们有指向单个链表中最后一个节点的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154077/

相关文章:

arrays - 有效地合并两个数组 - 一个已排序,另一个未排序

c++ - 在磁盘上存储巨大的 std::map,moSTLy

c - 我怎么知道在发送信号之前是否已经创建了所有进程?

c - 系统 + usleep + 多线程 = SEGV/SIGILL

linux - 共享内存中的链表,linux内核

linux - uEnv.txt 到 boot.scr 较新版本的 u-boot 问题

c - 使用 fgets 读取文件

c - 用C语言编写的快速排序

linux - 如何在 Linux 机器上部署 WAR 文件

arrays - 数组和散列映射在访问时如何保持恒定时间?