网页制作公司网站,wordpress英文版切换中文,中小企业网站建设开题报告,软件项目管理计划题目描述
题目链接:力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 题目分析
我们假设起点到环的入口点的距离是L#xff0c;入口点到相遇点的距离是X#xff0c;环的长度是C
那么画图我们可以得知#xff1a; 从开始到相遇时slow走的距离是LX从…题目描述
题目链接:力扣LeetCode官网 - 全球极客挚爱的技术成长平台 题目分析
我们假设起点到环的入口点的距离是L入口点到相遇点的距离是X环的长度是C
那么画图我们可以得知 从开始到相遇时slow走的距离是LX从开始到相遇时fast走的距离是Ln*CX n:slow进环前fast已经在环里走了 n 圈 由于fastslow*2所以我们可以得到结论一个指针从相遇点开始走一个指针从头开始走最终会在入口点相遇 我们可以画图来证明一下 代码示例
根据这个思路我们可以写出代码: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
struct ListNode *detectCycle(struct ListNode *head) {struct ListNode *slow,* fast;slowfasthead;while(fastfast-next){slowslow-next;fastfast-next-next;if(slowfast)//相遇{struct ListNode *meetslow;while(head!meet){headhead-next;meetmeet-next;}return meet;}}return NULL;
}
结果当然也是通过了