leetcode:141. 环形链表

一、题目

函数原型:

bool hasCycle(struct ListNode *head)
二、算法

判断不是环形链表,只需遍历链表找到空结点即可。

判断是环形链表,由于链表是环形的,遍历不会永远不会结束。所以要设置快慢指针,慢指针一次走一步,快指针一次走两步。当两个指针都进入环时,快指针走地比慢指针快,因此快指针总会遇到慢指针。因此,判断是环形链表的条件是慢指针等于快指针。
三、代码

cpp 复制代码
bool hasCycle(struct ListNode *head) {
    struct ListNode *fast=head;
    struct ListNode *slow=head;

    while(fast&&fast->next)
    {
        fast=fast->next->next;
        slow=slow->next;
        if(fast==slow)
            return true;
    }
    return false;
}
相关推荐
想进个大厂9 分钟前
代码随想录day63 64 65 66 图论08 09 10 11
c++·算法·图论
云泽80810 分钟前
蓝桥杯算法精讲:双指针算法四大经典例题深度剖析
算法·职场和发展·蓝桥杯
小龙报22 分钟前
【算法通关指南:算法基础篇】二分算法: 1.A-B 数对 2.烦恼的高考志愿
c语言·开发语言·数据结构·c++·vscode·算法·二分
yong999025 分钟前
NNDA、PDA、JPDA、IMM数据关联算法MATLAB实现
开发语言·算法·matlab
罗湖老棍子28 分钟前
加分二叉树(信息学奥赛一本通- P1580)(洛谷-P1040)
算法·区间dp·区间动态规划
再难也得平43 分钟前
力扣54. 螺旋矩阵(Java解法)
算法·leetcode·矩阵
飞Link1 小时前
别再被异常数据骗了:深度解析 TSTD 异常检测中的重构模型(AutoEncoder 实战)
人工智能·算法·重构·回归
小曹要微笑1 小时前
C#中的各种数据类型
算法·c#·数据类型·c#数据类型
靠沿1 小时前
【优选算法】专题九——链表
数据结构·算法·链表