题解 | #链表中环的入口结点(优化)#
链表中环的入口结点
https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { if(pHead == NULL){ return NULL; } ListNode* fast = pHead; ListNode* slow = pHead; bool iscircle = false; while(fast!=NULL && fast->next!=NULL ){ fast = fast->next->next; slow = slow->next; if(fast == slow){ iscircle = true; fast = pHead; break; } } if(iscircle){ while(fast!=slow){ fast = fast->next; slow = slow->next; } return fast; } return NULL; } };