import java.util.HashSet;
import java.util.Set;
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead) {
Set<ListNode> dic = new HashSet<ListNode>();
while(pHead != null){
if(dic.contains(pHead)){
return pHead;
} else {
dic.add(pHead);
}
pHead = pHead.next;
}
return null;
}
}
利用HashSet的非重复性
- 将遍历过的节点放入set中,如果后续节点在set中存在,则返回第一个存在的节点
- 如果没有,则返回null



京公网安备 11010502036488号