您现在的位置是:首页 > 编程 > 

单链表OJ题——10.环形链表2

2025-07-29 11:14:17
单链表OJ题——10.环形链表2 10.环形链表2142. 环形链表 II - 力扣(LeetCode)代码语言:javascript代码运行次数:0运行复制/* 解题思路: 如果链表存在环,则fast和slow会在环内相遇,定义相遇点到入口点的距离为X,定义环的长度为C,定义头到入口的距离为L,fast在slow进入环之后一圈内追上slow,则会得知: slow所走的步数为:L + X fast

单链表OJ题——10.环形链表2

10.环形链表2

142. 环形链表 II - 力扣(LeetCode)

代码语言:javascript代码运行次数:0运行复制
/*
解题思路:
如果链表存在环,则fast和slow会在环内相遇,定义相遇点到入口点的距离为X,定义环的长度为C,定义头到入口的距离为L,fast在slow进入环之后一圈内追上slow,则会得知:
slow所走的步数为:L + X
fast所走的步数为:L + X +  * C
并且fast所走的步数为slow的两倍,故:
2*(L + X) = L + X +  * C
即: L =  * C - X
所以从相遇点开始slow继续走,让一个指针从头开始走,相遇点即为入口节点
*/
代码语言:javascript代码运行次数:0运行复制
typedef struct Listode ode;
struct Listode *detectCycle(struct Listode *head) {
    	ode* slow = head;
        ode* fast = head;

        while(fast && fast->next)
        {
            slow = slow->next;
            fast = fast->next->next;
            //走到相遇点
            if(slow == fast)
            {
                // 求环的入口点
                ode* meet = slow;
                ode* start = head;

                while(meet != start)
                {
                    meet = meet->next;
                    start = start->next;
                }

                return meet;
            }
        }

        return ULL;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent 删除structtypedef链表指针return

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1261833.html

相关标签:无
上传时间: 2025-07-28 09:12:43
留言与评论(共有 17 条评论)
本站网友 微巴
0秒前 发表
fast在slow进入环之后一圈内追上slow
本站网友 新濠江风云
26分钟前 发表
则fast和slow会在环内相遇
本站网友 东池便当电话
9分钟前 发表
定义头到入口的距离为L
本站网友 蒋怡图片
24分钟前 发表
分享自作者个人站点/博客
本站网友 胃食管反流病症状
11分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看structtypedef链表指针return
本站网友 武汉博大医院
19分钟前 发表
L + X fast所走的步数为:L + X + * C 并且fast所走的步数为slow的两倍
本站网友 学步车的危害
26分钟前 发表
单链表OJ题——10.环形链表2 10.环形链表2142. 环形链表 II - 力扣(LeetCode)代码语言:javascript代码运行次数:0运行复制/* 解题思路: 如果链表存在环
本站网友 菜百黄金价格查询
13分钟前 发表
分享自作者个人站点/博客
本站网友 大地保险理赔
28分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看structtypedef链表指针return
本站网友 保健品减肥
21分钟前 发表
L + X fast所走的步数为:L + X + * C 并且fast所走的步数为slow的两倍
本站网友 光伏业
24分钟前 发表
则会得知: slow所走的步数为
本站网友 上海治疗青春痘医院
18分钟前 发表
则fast和slow会在环内相遇
本站网友 东新路
11分钟前 发表
L + X fast所走的步数为:L + X + * C 并且fast所走的步数为slow的两倍
本站网友 百日破
9分钟前 发表
单链表OJ题——10.环形链表2 10.环形链表2142. 环形链表 II - 力扣(LeetCode)代码语言:javascript代码运行次数:0运行复制/* 解题思路: 如果链表存在环
本站网友 企业信用档案
19分钟前 发表
故: 2*(L + X) = L + X + * C 即: L = * C - X 所以从相遇点开始slow继续走
本站网友 建鲤
6分钟前 发表
定义头到入口的距离为L