gpt4 book ai didi

java - 如何从 LinkedList 中删除中间节点?

转载 作者:行者123 更新时间:2023-11-30 09:59:49 25 4
gpt4 key购买 nike

我正在尝试从链接列表中删除中间节点,以便访问该节点。我想知道以下两种方法之间是否存在差异,或者它们是否完成相同的事情?

public boolean deleteMiddle(Node middle){
Node next = middle.next; //line 2
middle.data = next.data;
middle.next = next.next;
return true;

}
public boolean deleteMiddle(Node middle){
middle.data = middle.next.data;
middle.next = middle.next.next;
return true;

}

第一种方法是教科书推荐的方法,但在第一种方法(第 2 行)中创建节点“next”似乎是不必要的代码行。

最佳答案

我认为你可能是对的,它们是等价的(或者看起来确实是这样的)

在这两种情况下,如果您要删除的项目是列表中的最后一项(例如,如果 next 为空,则 next.next 是一个错误),看起来会出现空指针异常(在 next.next 上)。

如果你通过 null 当然那也将是一个 NPE。

关于java - 如何从 LinkedList 中删除中间节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586536/

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