方法一:
使用HashMap中的containsKey()方法,在put时判断该Node节点是否已存在,若存在,必是第一个入环节点;若不存在,则只能反应该链表不是一个环.
public static Node isLoop1(Node head){
Node cur=head;
HashMap<Node,Node> map=new HashMap<Node,Node>();
while(cur!=null){
map.put(cur, new Node(cur.value));
if(map.containsKey(cur.next)){
return cur.next;
}
cur=cur.next;
}
return null;
}
方法二:
使用数学递推公式,略作介绍一下: