简单写一下思路:已知链表中有环,用快慢指针法找到相遇点。
因为慢指针走1步快指针走2步,那么当快慢指针相遇时,假设慢指针走了k步,那么快指针一定走了2k步,多出来的k步就是环的长度。也就是说环长度为k。此时假设相遇点距离环起点距离为m,那么环起点距离链表起点为k-m,这时发现相遇点已经距离环起点走出了m,那么环中剩下的路径长度也是k-m,因此在相遇点让一个指针指向链表起点,然后两个指针一起向前进,在走出k-m步后两者会相遇,此时相遇位置就是环的起点。
已知链表中含有环,返回这个环的起始位置
最新推荐文章于 2023-04-17 16:29:00 发布