思路
标记法。走过的节点给一个标记,若当前节点有该标记,则返回该节点。
代码:(注意:没有通过,仅供参考思想)
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)