import java.util.ArrayList;
import java.util.List;

/*
 public class ListNode {
    int val;
    ListNode next = null;

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

    public ListNode EntryNodeOfLoop(ListNode pHead) {
        List<ListNode> nodes = new ArrayList<>(); // 用于保存访问过的所有节点
        while (pHead != null) { // 遍历所有节点
            if(nodes.contains(pHead)) return pHead; // 如果该节点已访问过,说明该节点是循环入口节点
            nodes.add(pHead); // 否则将该节点加入已访问列表
            pHead = pHead.next;
        }
        return null;
    }
}