从CEGRD的回答(Explain how finding cycle start node in cycle linked list work?)我们可以看到,如果快速指针的速度是慢速指针的时间速度,那么满足它们的下列标准应该成立: i:慢指针覆盖的长度 m:从链表开始到循环开始的距离 n:循环长度 k:从循环开始到当前节点的距离(
i = m + p*n + k
c*i = m + q*n + k
=> m + k = n(q - p*c)/(c-1);
现在我们必须最小化i,减少到i = n(b-a)/ c-1; => c必须大到最小化i因此c = 2不是最佳值,c应该大。 请帮忙。