和查找是否包含环形链表思路没区别,一致next去检测,当遍历过的部分包含即将要遍历的部分就说名有环形链表,而第一个出现的就是环形链表的入口:
public class Solution {

public ListNode EntryNodeOfLoop(ListNode pHead) {
    ListNode checkNode = new ListNode(0);
    ListNode end = checkNode;
    ListNode root = pHead;
    while(root != null){
        ListNode temp = root;
        root = root.next;
        temp.next = null;
        end.next = temp;
        end = temp;
        if(checkContains(checkNode,root)){
            return root;
        }
    }
    return null;
}

boolean checkContains(ListNode toCheck,ListNode item){
    while(toCheck != null){
        if(toCheck.equals(item)){
            return true;
        }
        toCheck = toCheck.next;
    }
    return false;
}

}