gpt4 book ai didi

Java 如何检查链表是否有重复条目

转载 作者:行者123 更新时间:2023-12-01 09:31:49 24 4
gpt4 key购买 nike

该方法应该检查链接列表是否有多个相同的条目。我尝试获取方法来检查头是否等于当前节点,然后使当前等于 current.next ,如果 head 永远不等于当前,则 head 等于 head.next并将当前电流分配给firstNode来重新启动。当我尝试测试代码时,出现以下错误:

Exception in thread "main" java.lang.NullPointerException at LinkedBag1.hasDuplicateEntries(LinkedBag1.java:182) java:182 is while((!head.equals(current)) || (current != null)){

不确定这意味着什么以及是什么导致我的方法出现此错误。

    public boolean hasDuplicateEntries(){
Node head = firstNode;
Node current = head.next;
boolean duplicate = true;

while((!head.equals(current)) || (current != null)){
if(head.equals(current)) {
duplicate = true;
}
else{
current = current.next;
}
current = firstNode;
head = head.next;


}


return duplicate;
}

我的方法有什么问题吗?任何帮助将不胜感激。

最佳答案

我认为您的问题在于 head = head.next; 列表中最后一个节点的 head.next 是什么?当您将 head 设置为该值然后循环返回并再次检查 head.equals(current) 时会发生什么?

(另外,也许您已经意识到这一点,但我认为您的算法仅在重复条目彼此相邻的情况下才有效。)

关于Java 如何检查链表是否有重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339567/

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