import java.util.*;
/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {

    public ListNode EntryNodeOfLoop(ListNode pHead) {

        if(pHead== null){
            return null;
        }
        //思路:遍历链表,然后将链表放入一个容器中,找到第一个重复的节点就是要找的
        ListNode listNode = pHead;
        Set<ListNode> set = new HashSet<>();
        while(listNode!=null){
            if(set.contains(listNode)){
                return listNode;
            }else{
                set.add(listNode);
                listNode = listNode.next;
            }
        }
        return null;
    }
}