剑指Offer刷题(链表中环的入口结点)

    技术2022-08-01  71

    剑指Offer刷题(链表中环的入口结点)

    一.题目描述二.代码(C++)三.提交记录四.备注

    一.题目描述

    给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。

    二.代码(C++)

    /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ class Solution { public: ListNode* EntryNodeOfLoop(ListNode* pHead) { ListNode *fast,*slow; if(!pHead) return NULL; fast = pHead; slow = pHead; while(fast!=NULL) { if(fast->next) { fast = fast->next->next; slow = slow->next; } else return NULL; if(fast==slow) { fast = pHead; break; } } while(1) { if(fast==slow) return fast; fast = fast->next; slow = slow->next; } } };

    三.提交记录

    四.备注

    设置快慢指针,根据计算,当快指针一次走两步慢指针一次走一步,相遇后,快指针从头按一次一步前进,相遇点即为起始点。

    Processed: 0.015, SQL: 9