思路:
    1、快慢双指针,先判断是否有环,无环返回NULL,有环找到环内第一次交点
    2、然后快指针回到链表头,与慢指针一起单步遍历
    3、第二次相遇,既为入口地址
    注意:
    **找环内第一个相遇点时,一定要先移动指针,再判断是否相遇,因为初始化快慢指针均指向链表头,如果不移动,则直接满足相遇并退出**
    
class Solution:
    def EntryNodeOfLoop(self, pHead):
        
        if not pHead:
            return
        
        slow, fast = pHead, pHead
        
        # 找环内第一次相遇点
        while True: # 快慢指针先移动再判断,如果以fast及fast.next是否为空为循环条件,如果出现单节点则快慢指针不会移动,最后返回第一个节点为答案
            # 判断是否有环
            if not fast or not fast.next:
                return
            
            fast = fast.next.next 
            slow = slow.next
            
            # 判断环内第一次交点
            if fast == slow:
                break
        
        # 快指针移动到链表头
        fast = pHead
        # 快慢指针共同遍历
        while fast != slow:
            fast = fast.next
            slow = slow.next 
        
        return fast