链表中的快慢指针问题
快慢指针可以巧妙的解决链表中的一些问题,典型的有
(1)判断链表中有没有环
(2)已知这个链表中含有环,返回环的起始位置
(3)链表的中点位置
(4)链表的倒数第n个结点
首先分析第一个问题:
来设想这样一个场景,给一个四百米跑道,龟兔赛跑,兔子跑的贼快,速度是乌龟的两倍,在这种情况下,是不是总有一个时刻,乌龟和兔子处在同一个位置,但是兔子比乌龟多跑了一圈。
bool hascycle(ListNode* head)
{
ListNode fast,slow;
fast=head;
slow=head
原创
2021-06-23 15:48:43 ·
231 阅读 ·
0 评论