gpt4 book ai didi

java - 在java中使用HashMap在链表中查找循环

转载 作者:行者123 更新时间:2023-11-29 08:34:50 25 4
gpt4 key购买 nike

我正在使用 hashmap 编写链表中的 lop 检测代码。为什么会进入无限循环?

boolean hasCycle(Node head) {
HashMap<Integer,Node> map = new HashMap<Integer,Node>();
//<Address,data>
if(head == null || head.next == null)
return false;
Node p = head;
while(p.next!=null)
{
if(map.containsValue(p.next))
{
return true;
}
else
{
map.put(p.data,p.next);
}
p = p.next;
}
return false;
}

最佳答案

以Node为key,data字段为value,然后检查HashMap是否包含key:

boolean hasCycle(Node head) {
HashMap<Node,Integer> map = new HashMap<Node,Integer>();
if(head == null || head.next == null)
return false;
Node p = head;
while(p.next!=null) {
if (map.containsKey(p.next)) {
return true;
} else {
map.put(p.next,p.data);
}
p = p.next;
}
return false;
}

同时也关注Java Code Conventions .

关于java - 在java中使用HashMap在链表中查找循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971519/

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