/* * 环形链表入口检测算法(Floyd判圈算法) * 原理说明: * 1. 快慢指针首次相遇时,快指针走过的距离是慢指针的2倍 * 2. 设头节点到环入口距离为a,环入口到相遇点距离为b,环长为c * 则有:a + b = n*(b + c) + b → a = n*c + (n-1)*b + c * 化简得:a = (n-1)*(b + c) + c → 头节点到入口的距离等于相遇点到入口的距离(绕环n-1圈后) * 3. 重置一个指针到头部,两个指针同步移动,再次相遇即为入口节点 */ struct ListNode { int val; struct ListNode *next; ...