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;
}
相关推荐
进击的小头10 分钟前
第15篇:MPC的发展方向及展望
python·算法
We་ct18 分钟前
LeetCode 35. 搜索插入位置:二分查找的经典应用
前端·算法·leetcode·typescript·个人开发
IT猿手30 分钟前
基于 ZOH 离散化与增量 PID 的四旋翼无人机轨迹跟踪控制研究,MATLAB代码
开发语言·算法·matlab·无人机·动态路径规划·openclaw
A923A34 分钟前
【洛谷刷题 | 第五天】
算法·字符串·递归·洛谷
Navigator_Z1 小时前
LeetCode //C - 990. Satisfiability of Equality Equations
c语言·算法·leetcode
bbbb3651 小时前
图算法的最优路径搜索与边界约束建模的技术7
算法
東雪木1 小时前
编程算法学习——栈与队列算法
学习·算法·排序算法
CSDN_Colinw1 小时前
C++中的工厂方法模式
开发语言·c++·算法
liulilittle1 小时前
范围随机算法实现
开发语言·c++·算法·lua·c·js
2401_857918292 小时前
C++中的访问者模式实战
开发语言·c++·算法