链接列表上的 Typescript 垃圾收集

发布于 2025-01-11 00:52:56 字数 684 浏览 0 评论 0原文

我目前正在学习打字稿并尝试实现链接列表。我遇到了一个场景,我不确定如何处理引用以及何时允许垃圾收集器收集一块内存。

节点实现

class Node{
  next: Node | null;
  data: number;

  constructor(data: number){
    this.data = data;
    this.next = null;
  }
}

列表实现

class LinkedList {
  head: Node | null;

  constructor(){
    this.head = null;
  }

  // append
  
  // deleteValue
  deleteValue(value: number){
    let prev: Node;
    let curr: Node;
    // loop until curr.data = value
    // < Insert Deletion Code Here >

当我删除 curr 节点时,是否足以将 prev.next 指向 curr.next 从而消除对的所有引用curr 允许垃圾收集器捕获。或者我还必须设置 curr = null 吗?

I am currently learning typescript and tried my hand at implementing a Linked List. I came across a scenario in which I am not sure how references are handled and when the garbage collector is allowed to collect a piece of memory.

Node implementation

class Node{
  next: Node | null;
  data: number;

  constructor(data: number){
    this.data = data;
    this.next = null;
  }
}

List Implementation

class LinkedList {
  head: Node | null;

  constructor(){
    this.head = null;
  }

  // append
  
  // deleteValue
  deleteValue(value: number){
    let prev: Node;
    let curr: Node;
    // loop until curr.data = value
    // < Insert Deletion Code Here >

When I am deleting the curr node, is it enough to point prev.next to curr.next thereby eliminating all references to curr allowing the garbage collector to capture. Or must I also set curr = null ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文