思路:set里面的内容不可以重复,所以可以遍历链表,用set保存每一个结点,如果set中当前结点已包含,说明有环。
public class Main {
boolean hasCycler(Node node) {
Set<Node> set = new HashSet<>();
while(node != null) {
if (set.contains(node)) {
return true;// 有环
}
set.add(node);
}
return false;
}
class Node {
int value;
Node next;
public Node(int value) {
this.value = value;
}
public Node(int value, Node nextNode) {
this.value = value;
this.next = nextNode;
}
}
}