思路

标记法。走过的节点给一个标记,若当前节点有该标记,则返回该节点。

代码:(注意:没有通过,仅供参考思想)

ListNode* EntryNodeOfLoop(ListNode* pHead) {

        while(pHead){
            if(pHead->val != INT_MAX){
                pHead->val = INT_MAX;// 标记,说明遍历过了
            }
            else{
                return pHead;
            }
            pHead = pHead->next;
        }
        return NULL;
    }

分析:

T(n)=O(n),遍历+查找共两遍;S(n)=O(1)