第七天 | LeetCode 142. 环形链表 II:快慢指针的数学魔法

张开发
2026/4/20 1:23:50 15 分钟阅读

分享文章

第七天 | LeetCode 142. 环形链表 II:快慢指针的数学魔法
一.题目描述给定一个链表的头节点 head返回链表开始入环的第一个节点。如果链表无环则返回 null。为了表示给定链表中的环评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置索引从0开始。如果 pos 是 -1则在该链表中没有环。注意pos 不作为参数进行传递仅仅是为了标识链表的实际情况。题目链接https://leetcode.cn/problems/linked-list-cycle-ii/ 视频链接https://www.bilibili.com/video/BV1if4y1d7ob二、解题思路快慢指针1. 判断是否有环定义慢指针 slow 每次走1步快指针 fast 每次走2步。• 无环fast 走到空结束。• 有环两指针一定会在环内相遇。2. 找环的入口相遇后把 slow 移回链表头然后两个指针都每次走1步再次相遇的节点就是环的入口。三、解题心得通过这道环形链表题我真正理解了快慢指针的用法也体会到算法背后的数学逻辑。先判环、再找入口思路清晰高效。同时也让我意识到写链表代码时边界判断十分关键只有理解原理才能写出稳定可靠的程序。

更多文章