[劍指offer]連結串列中環的入口結點
阿新 • • 發佈:2019-02-01
題目描述
一個連結串列中包含環,請找出該連結串列的環的入口結點。分析:快慢指標法,要注意測試用例中包含沒有環的情況。
程式碼:
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { if(pHead==NULL||pHead->next==NULL) return NULL; ListNode* p=pHead; ListNode* q=pHead; while(p!=NULL&&q!=NULL){ p=p->next; q=q->next->next; if(p==q){ q=pHead; while(p!=q){ p=p->next; q=q->next; } if(p==q) return p; } } return NULL; } };