【劍指offer】連結串列中環的入口結點
阿新 • • 發佈:2019-01-24
時間限制:1秒 空間限制:32768K 熱度指數:32723
本題知識點: 連結串列
題目描述
一個連結串列中包含環,請找出該連結串列的環的入口結點。思路:兩個指標,p1在後,p2在前,p1斷開連結串列,然後p1和p2不斷往前走。當p2為空(因為之前被斷開了),表明p1回到了環的入口。
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { if(pHead->next == NULL) return NULL; ListNode* p1 = pHead; ListNode* p2 = pHead->next; while(p2) { p1->next = NULL; p1 = p2; p2 = p2->next; } return p1; } };