解题思路:
维护一个map,如果当前节点的下一个节点是已经存在的节点(map中的节点)则链表有循环提交代码:
class Solution {
public boolean hasCycle(ListNode head) {
if(head==null||head.next==null) return false;
Map<ListNode,Boolean> map=new HashMap<>();
ListNode p=head;
while(p!=null) {
if(map.containsKey(p)) return true;
map.put(p, true);
p=p.next;
}
return false;
}
}
运行结果:

本文介绍了一种使用哈希表(Map)检测链表中是否存在循环的有效方法。通过遍历链表并将节点存入哈希表,若遇到已存在节点,则表明链表有循环。
3208

被折叠的 条评论
为什么被折叠?



