当前位置:网站首页>【力扣】环形链表 II
【力扣】环形链表 II
2022-07-17 05:13:00 【Patrick star`】
题目:
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
思路:
利用快慢指针

代码:
struct ListNode *detectCycle(struct ListNode *head) {
struct ListNode* fast = head;
struct ListNode* slow = head;
while(fast && fast->next)
{
fast = fast->next->next;
slow = slow->next;
if(slow == fast)
{
struct ListNode* temp = head;
while(1)
{
if(temp == slow)
{
return slow;
}
temp=temp->next;
slow=slow->next;
}
}
}
return NULL;
}拓展:
1、slow一次走1步,fast一次走2步,一定能追上吗?
答:一定可以,假设slow进入循环后与fast的距离为N,fast一次走两步,slow一次走一步,每次fast和slow的距离就会-1,N次后,fast和slow的距离就为0.
2、slow一次走1步,fast一次走3步,能追上吗?fast一次走4步,n步呢?
答:不一定,假设slow进入循环后与fast的距离为N,每一次fast和slow的距离都会-2,如果N不是二的倍数话,fast和slow的距离就不可能为0.
3、证明上述求循环入口的方法。

设进入循环前的那一段距离为 l
入口到fast和slow相遇点的距离为 x
一次循环的长度为 c
slow所走的长度: l+x
fast所走的长度: l + nc+x
fast走的长度是slow的2倍
2(l+x) = I+x +nc
l = nc -x
l = (n-1)*c + c-x
所以l = c-x
4、其他解决方法

当fast 和slow相遇后,将循环断开,就变成了求两个链表交点的问题
边栏推荐
- 简单Chrome脚本 自动跳过b站视频播放结束后的的充电鸣谢页面
- 4-20mA to 4-20mA 0-5V to 0-5V analog signal isolation transmitter
- 数学基础课2_欧拉函数,线性筛,扩欧
- Digital signal isolation module adum1401arwz yadeno in stock
- 设置索引库结构,给用户添加可自动补全的suggestion,并将一些字段变成集合放到suggestion里面去
- busybox 指定日期修改 暂时不需要clock -w 写入硬件
- 2022/07/14 learning notes (day07) array
- 热电阻pt100 CU50隔离转换器转4-20ma模拟量输出温度变送器0-10V
- DSL实现Bucket聚合
- HRA 1~12W 系列12V《宽压9~18V》转±250VDC等升压变换器
猜你喜欢

索引库中的文档的操作

HRA2460D-2w高压电源高压模块-高压---高精度hra2460d-2w

2021-09-15

解决:无法加载文件 C:\Program Files\.. 因为在此系统上禁止运行脚本...

Proportional valve amplifier 1a, 2a, 3a, 5A proportional valve drive module 0-10V to 0-24v

Wireless charging mouse pad RGB LED lighting wireless charging mouse pad

处理中文分词 ik分词器以及拓展和停止字典

DSL实现自动补全查询

IT4058A型号单节锂离子电池充电管理

minio安装部署及简单使用
随机推荐
Wireless charging chip IC
Ehab the Xorcist (异或性质,构造)
QTSS数据类型
5V升压充电8.4V芯片
RestAPI实现聚合(黑马教程)
2021-09-15
Golang multi project workspace construction
配置VsCode中‘log’快捷键去掉console.log(‘‘);中的分号;
简单Chrome脚本 自动跳过b站视频播放结束后的的充电鸣谢页面
HRA isolation series wide voltage input positive and negative high voltage regulated output
vscode one dark和c扩展变量颜色冲突 设置settings.json如下即可
0-10V,4-20mA电流电压转PWM隔离转换器 质料以及应用电路图
c语言调用文件浏览器,实现选择文件的效果
uboot 编译前的配置命令make config分析
Conversion, isolation and transmission of international standard signals 0-5v/0-10v/1-5v, 0-10ma/0-20ma/4-20ma, etc
Qtss constant
隔离4-20mA或0-20mA信号传输
Boost dc/dc converter
Chrome browser settings [display the translation language icon in the upper right corner]
EasyDarawin流媒体服务器介绍