把节点一个个放入set,如果放入失败说明之前已经放过了,放入失败的节点就是环的入口。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
import java.util.Set;
import java.util.HashSet;
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead) {
return EntryNodeOfLoop(pHead,new HashSet());
}
public ListNode EntryNodeOfLoop(ListNode pHead,Set<ListNode> set) {
if(null==pHead)
return pHead;
if(!set.add(pHead))
return pHead;
return EntryNodeOfLoop(pHead.next,set);
}
}