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) {
Set<ListNode> alreadyTraversed = new HashSet<>();
alreadyTraversed.add(pHead);
ListNode currentNode = pHead;
while(currentNode.next != null){
int prevLen = alreadyTraversed.size();
currentNode = currentNode.next;
alreadyTraversed.add(currentNode);
int currentLen = alreadyTraversed.size();
if (prevLen == currentLen){
return currentNode;
}
}
return null;
}
}