【leetcode】142.环形链表II

cpp 复制代码
struct ListNode *detectCycle(struct ListNode *head) {
    struct ListNode *fast=head;
    struct ListNode *slow=head;
    // 先用快、慢指针找到相遇点
    // 若相遇,则说明存在环
    while(fast!=NULL&&fast->next!=NULL)
    {
        fast=fast->next->next;
        slow=slow->next;
        if(fast==slow)
        {
            // 再找到环的入口
            struct ListNode *p=head;
            // x=(n-1)(y+z)+z
            while(p!=slow)
            {
                p=p->next;
                slow=slow->next;
            }
            return p;
        }
    }
    return NULL;
}
相关推荐
进击的_鹏6 分钟前
【C++】stack和queue以及priority_queue的使用以及模拟实现
开发语言·c++·算法
手握风云-6 分钟前
优选算法的智慧之光:滑动窗口专题(二)
数据结构·算法
闻缺陷则喜何志丹8 分钟前
【二分查找 前缀和】P10429 [蓝桥杯 2024 省 B] 拔河|普及+
c++·算法·前缀和·蓝桥杯·二分查找·洛谷·拔河
Jason_Orton24 分钟前
决策树(Decision Tree):机器学习中的经典算法
人工智能·算法·决策树·随机森林·机器学习
筏.k39 分钟前
动态规划之 “完全背包“ ------P8646 [蓝桥杯 2017 省 AB] 包子凑数
算法·蓝桥杯·动态规划
clownAdam1 小时前
通俗易懂的分类算法之支持向量机详解
算法·支持向量机·分类·数据挖掘
飞3001 小时前
淘天集团算法岗-计算机视觉(T-Star Lab)内推
人工智能·算法·计算机视觉·业界资讯
apcipot_rain1 小时前
【密码学——基础理论与应用】李子臣编著 第二章 古典密码 课后习题
算法·网络安全·密码学
_Itachi__2 小时前
LeetCode 热题100 21. 合并两个有序链表
算法·leetcode·链表
萌の鱼3 小时前
leetcode 240. 搜索二维矩阵 II
数据结构·c++·算法·leetcode·矩阵