可以使用Hashset哈希表来实现,哈希表中存储的是数据类型为节点。如果不能继续向哈希表中存值,!add() 为true时,表明是环形链表。
public class Solution {
public boolean hasCycle(ListNode head) {
HashSet<ListNode> listNodes = new HashSet<>();
while (head != null){
if (!listNodes.add(head)){
return true;
}
head = head.next;
}
return false;
}
}
时间复杂度和空间复杂度都为o(n)