用链表是否有环的第三种解题方式来做,传送门,思路也非常简单,不断地打断链表,如果存在环,那判断条件成理的地方肯定就是环的入口。
#include<iostream> #include<vector> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { if(pHead == NULL) return NULL; if(pHead->next == pHead) return pHead; ListNode* tmp = pHead->next; pHead->next = pHead; return EntryNodeOfLoop(tmp); } };