东莞企石做网站关键词查询网站的工具
但是我们不知道 aaa 的值,该怎么办?依然是使用双指针法。考虑构建一个指针,此指针需要有以下性质:此指针和 slow 一起向前走 a 步后,两者在入口节点重合。那么从哪里走到入口节点需要 aaa 步?答案是链表头节点head。
原题链接142. 环形链表 II - 力扣(LeetCode)
class Solution {
public:ListNode* detectCycle(ListNode* head) {ListNode* slow = head;ListNode* fast = head;while (true){if (fast == nullptr || fast->next == nullptr)return nullptr;fast = fast->next->next;slow = slow->next;if (slow == fast)break;}fast = head;while (fast != slow){fast = fast->next;slow = slow->next;}return slow;}
};