gpt4 book ai didi

javascript - 链表 - 删除最后一个节点

转载 作者:行者123 更新时间:2023-12-02 14:57:32 26 4
gpt4 key购买 nike

我正在创建一个函数来删除给定列表的最后一个节点(作为参数输入)。该函数本身非常简单,如下所示。

function popBack(list) {
var current = list.head,
previous;

while (current.next) {
previous = current;
current = current.next;
}

// console.log(current);
// console.log(previous.next);
// current = null;
// console.log(current);
// console.log(previous.next);

previous.next = null;
return list;
}

由于列表中的下一个节点被前一个节点引用,因此 previous.next 和 current 应该指向同一个对象。这引出了我的问题。如果我将 current 设置为 null,那么 previous.next 是否也等于 null ?情况似乎并非如此,因为 previous.next 仍然引用 current 曾经的内容。谁能解释一下为什么会发生这种情况?

提前致谢。

最佳答案

您是对的,previous.nextcurrent 指向同一个对象。我们将该对象称为O。也就是说,

  • previous.next 指向 O
  • 当前指向O

当您运行以下代码时,

current = null;

它不会将 O 设置为 null,它只会更改 current 指向的内容。也就是说,运行 current = null; 后,这是新状态:

  • previous.next 指向 O
  • current 指向 null

关于javascript - 链表 - 删除最后一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35690180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com