news 2026/5/11 7:09:01

DAY 4.链表中环的入口节点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DAY 4.链表中环的入口节点

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、链表中环的入口节点
  • 二、代码实现
  • 总结

前言

`


一、链表中环的入口节点

思路:使用快慢指针,都从头节点出发,快指针一次走两步,慢指针一次走一步,如果有环的话,他们一定会相遇。
找环入口的方法:将一个指针放在头节点,另一个指针在相遇的位置,既保持不变,然后同时让他们一次走一步,找到他们相遇的节点,那个点就是环的入口。

二、代码实现

代码如下(示例):

structListNode*EntryNodeOfLoop(structListNode*pHead){structListNode*fast=pHead;structListNode*slow=pHead;while(fast!=NULL&&fast->next!=NULL){fast=fast->next->next;slow=slow->next;if(fast==slow){break;}}if(fast==NULL||fast->next==NULL){returnNULL;}slow=pHead;while(slow!=fast){slow=slow->next;fast=fast->next;}returnslow;}

2.结论

当快慢指针在环里相遇后:
把 慢指针放回链表头部
两个指针现在都一次只走 1 步
它们再次相遇的地方,就是环的入口!


总结

快慢指针相遇 = 有环
一个回头,一个留原地
同速走,相遇点 = 环入口
原因就是:
头到入口的距离 = 相遇点到入口的距离

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 7:06:52

SharpKeys:免费Windows键盘重映射终极解决方案

SharpKeys:免费Windows键盘重映射终极解决方案 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh/sharpkeys SharpKey…

作者头像 李华
网站建设 2026/5/11 7:04:17

第五部分-DockerCompose——25. Compose 高级特性

25. Compose 高级特性 1. 高级特性概述 Docker Compose 提供了许多高级特性,用于处理复杂的多容器应用场景,包括配置文件管理、服务扩展、健康检查、依赖控制等。 ┌─────────────────────────────────────────…

作者头像 李华
网站建设 2026/5/11 7:03:11

HelmWave:声明式编排工具,解决Kubernetes多Helm Chart部署难题

1. 项目概述:HelmWave,一个被低估的Helm编排利器如果你和我一样,长期在Kubernetes环境中管理着几十甚至上百个Helm Chart,那你一定对“Helm依赖地狱”和“多环境部署同步”这两个词深有体会。每次更新,手动执行一堆hel…

作者头像 李华