gpt4 book ai didi

java - 实现一个算法来删除单个链表中间的节点,只允许访问该节点

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:43 25 4
gpt4 key购买 nike

示例输入:链表 a->b->c->d->e 中的节点 'c' 结果:没有返回任何内容,但新的链表看起来像 a->b->d->电子

我知道人们之前已经问过这个问题,但由于我的声誉还不够高,所以我不能在该线程中提出我的问题。所以这是我的问题:所以在解决方案中,当我们删除中间节点时:

public static boolean deleteNode(LinkedListNode n) {
if (n == null || n.next == null) {
return false; // Failure
}
LinkedListNode next = n.next;
n.data = next.data;
n.next = next.next;
return true;
}

但我不明白的是,为什么我不能只执行 n = next?这可能是一个微不足道的问题,但我似乎没有找到对这个问题的很好的解释

最佳答案

如果您只是执行n = next,那么您只是更改了您的本地引用变量n 所指的对象;您还没有修改列表的任何部分。

“删除”当前节点的技巧是用下一个节点覆盖它:

n.data = next.data;
n.next = next.next;

现在您正在修改 n 引用的对象的字段,它是实际列表的一部分。

关于java - 实现一个算法来删除单个链表中间的节点,只允许访问该节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27700904/

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