微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

删除一个链接如何从链表中删除一个节点?

如何解决删除一个链接如何从链表中删除一个节点?

我正在阅读 Crashing the Coding Interview 一书中的代码,当他们删除第 93 页中的一个节点时,这是他们使用的代码片段:

Node deleteNode(Node head,int d){ 

while (n.next != null) {

if (n.next.data == d){
  n.next == n.next.next;
  return head;
  }

return head;
  }
}

我不明白的是,如果前一个 n.next 节点仍然有指向它之后的节点的链接,为什么这会删除一个 n.next 节点?我附上了帮助说明的插图。

提前致谢!

enter image description here

解决方法

  1. 在支持自动垃圾回收的语言/运行时中,此引用变量(b - 无法从任何活动的执行线程访问)引用的对象将被垃圾回收。
  2. 即使在这种情况下,也应注意正确关闭任何外部资源(例如 - 有人将存储在 b 引用的对象中的值分配给他们的静态引用)。
  3. 在没有自动垃圾回收的运行时,释放资源是开发者的责任。
,

当我们使用 Java 编码时,包含 b 值的节点将被 Java 虚拟机 (JVM) 中的垃圾收集器 (GC) 删除。但是对于 C 语言,你应该使用 free() 函数销毁这个节点。 这是在 C 中创建和销毁一个节点的示例(我们假设“结构节点”已经​​定义):

n = malloc(sizeof(struct node));
free(n);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。