链表中环的入口结点


求解代码

java 复制代码
public ListNode EntryNodeOfLoop(ListNode pHead) {
        // 快慢指针都从链表头出发
        ListNode fast = pHead;
        ListNode slow = pHead;


        while (fast != null && fast.next != null) {
            fast = fast.next.next; // 快指针走2步
            slow = slow.next;      // 慢指针走1步

            // 快慢指针相遇 → 证明链表有环,进入找入口逻辑
            if (slow == fast) {
                // 找环的入口
                while (pHead != slow) {
                    pHead = pHead.next; // 头指针走1步
                    slow = slow.next; // 相遇点指针走1步
                }
                return slow; // 相遇时就是环的入口
            }
        }
				// 无环,返回null
        return null;
    }
相关推荐
切糕师学AI35 分钟前
环形缓冲区(Ring Buffer / Circular Buffer)详解:原理、优势、应用与高性能实现
数据结构·环形缓冲区
WolfGang0073211 小时前
代码随想录算法训练营 Day50 | 图论 part08
数据结构·算法·图论
晚枫歌F3 小时前
最小堆定时器
数据结构·算法
嫩萝卜头儿5 小时前
2 - 复杂度收尾 + 链表经典OJ
数据结构·算法·链表·复杂度
样例过了就是过了5 小时前
LeetCode热题100 分割等和子集
数据结构·c++·算法·leetcode·动态规划
木木_王5 小时前
嵌入式Linux学习 | 数据结构 (Day05) 栈与队列详解(原理 + C 语言实现 + 实战实验 + 易错点剖析)
linux·c语言·开发语言·数据结构·笔记·学习
北顾笙9806 小时前
day38-数据结构力扣
数据结构·算法·leetcode
m0_629494736 小时前
LeetCode 热题 100-----14.合并区间
数据结构·算法·leetcode
@小码农6 小时前
2026年3月Scratch图形化编程等级考试一级真题试卷
开发语言·数据结构·c++·算法
_日拱一卒8 小时前
LeetCode:226翻转二叉树
数据结构·算法·leetcode