gpt4 book ai didi

java - 搜索并从链表中删除节点

转载 作者:行者123 更新时间:2023-12-01 17:42:13 25 4
gpt4 key购买 nike

我使用链表而不使用集合类进行数据结构练习。我想在将元素值传递给函数后从链表中删除一个元素

这是我编写的函数。

public boolean remove(String s)
{
if(head.getName().equalsIgnoreCase(s))
{
head = head.getNext();
return true;
}

else
{
Node p =head;
Node current=p.getNext();

while(true) {
if(current == null || current.getName().equals(s)) {
break;
}
p = current;
current = current.getNext();
}
if (current == null)
{
p.setNext(current.getNext());
return true;
}
}
return false;
}

我使用节点 p 来存储前一个节点和当前节点。

代码落在 return false 部分,列表中没有任何变化。此外,我在 p.setNext(current.getNext( ))在这里。

请让我知道我在哪里犯了错误。

最佳答案

关于空指针异常,这应该敲响警钟

if (current == null)
{
p.setNext(current.getNext());
return true;
}

当前为空,您正尝试从中调用方法。

此外,您似乎没有处理特殊情况,例如列表为空或只有一个元素。

关于java - 搜索并从链表中删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59733919/

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