链表中环的入口结点


求解代码

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;
    }
相关推荐
leonkay15 小时前
Golang语言闭包完全指南
开发语言·数据结构·后端·算法·架构·golang
casual~16 小时前
第?个质数(埃氏筛算法)
数据结构·c++·算法
仰泳的熊猫16 小时前
题目2308:蓝桥杯2019年第十届省赛真题-旋转
数据结构·c++·算法·蓝桥杯
hssfscv17 小时前
力扣练习训练2(java)——二叉树的中序遍历、对称二叉树、二叉树的最大深度、买卖股票的最佳时机
java·数据结构·算法
不想看见40418 小时前
Search a 2D Matrix II数组--力扣101算法题解笔记
数据结构·算法
IronMurphy18 小时前
【算法二十六】108. 将有序数组转换为二叉搜索树 98. 验证二叉搜索树
数据结构·算法·leetcode
InfiniSynapse18 小时前
连上Snowflake就能取数:InfiniSynapse + Spider2-Snow实战企业数据分析
数据结构·图像处理·人工智能·算法·语言模型·数据挖掘·数据分析
WolfGang00732119 小时前
代码随想录算法训练营 Day13 | 二叉树 part03
数据结构·算法·leetcode
91刘仁德20 小时前
C++ 内存管理
android·c语言·数据结构·c++·经验分享·笔记·算法
历程里程碑20 小时前
链表-----
数据结构·线性代数·算法·链表·矩阵·lua·perl