力扣-142.环形链表II

题目描述

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

不允许修改 链表。

cpp 复制代码
class Solution {
public:
    ListNode *detectCycle(ListNode *head) {
        ListNode *fast = head;
        ListNode *slow = head;
        while (fast) {
            slow = slow->next;
            if(fast->next){
                fast = fast->next->next;
            }else{
                return nullptr;	//处理边界值
            }
            if (fast == slow) {
                break;
            }
        }
        if(fast!=slow)
            return nullptr;
        fast = head;
        while (fast != slow) {
            fast = fast->next;
            slow = slow->next;
        }
        return slow;
    }
};

小结:这道题在上一道题的基础上,不仅要判断是否有环,还要返回入环结点

a+(n+1)b+nc=2(a+b)⟹a=c+(n−1)(b+c)根据图示推导出这个公式,之后让快指针回到起点,并和慢指针以同样的速度移动,会发现快指针走距离a的时候,慢指针正好走距离c+(n-1)圈,即快慢指针在入环点相遇。需要注意的是本题有一个边界样例,只有一个结点且没有环,需要额外判断一下。

相关推荐
NAGNIP4 小时前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队5 小时前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
Fanxt_Ja10 小时前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下10 小时前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶10 小时前
算法 --- 字符串
算法
博笙困了10 小时前
AcWing学习——差分
c++·算法
NAGNIP10 小时前
认识 Unsloth 框架:大模型高效微调的利器
算法
NAGNIP10 小时前
大模型微调框架之LLaMA Factory
算法
echoarts10 小时前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Python技术极客10 小时前
一款超好用的 Python 交互式可视化工具,强烈推荐~
算法