struct ListNode* EntryNodeOfLoop(struct ListNode* pHead ) 
{
    // write code here
    struct ListNode* slow=pHead;//慢指针
    struct ListNode* fast=pHead;//快指针
    while(fast && fast->next)
    {
        slow=slow->next;//慢指针走一步
        fast=fast->next->next;//快指针走两步
        if(slow==fast)//如果相遇说明有环
        {
            struct ListNode* meet=slow;
            struct ListNode* list=pHead;
            while(meet!=list)//他俩相遇的节点,就是环的入口
            {
                meet=meet->next;//一个指针从相遇的结点开始走
                list=list->next;//一个指针从头节点开始走
            }
            return meet;
        }
    }
    
    return NULL;
}
(N-1)*c+c-x=l
n:快指针绕环走了多少圈
c:环的长度
x: 快指针和慢指针在环中相遇的节点
l: 头节点到环的长度