題目描述
給一個鏈表,若其中包含環,請找出該鏈表的環的入口結點,否則,輸出null, 思路: 利用快慢指標,先回圈找到快慢指標值相等的位置;再將慢指標重置到頭部,和快指標一起移動,但這次快慢指標都每次只移動一個位置, 代碼如下:/* 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 * p, * q; p=pHead,q=pHead; while(q!=NULL&&q->next!=NULL) { p=p->next; q=q->next->next; if(p==q) break; } if(q==NULL||q->next==NULL) return NULL; p=pHead; while(p!=q) { p=p->next; q=q->next; } return p; } };
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/24595.html
標籤:其他
上一篇:二叉樹的下一個結點
下一篇:《挪威的森林》--村上春樹
