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;
}
相关推荐
m沐沐16 小时前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
不会就选b16 小时前
算法日常・每日刷题--<链表>3
数据结构·算法·链表
geovindu16 小时前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
稚南城才子,乌衣巷风流18 小时前
块状链表:数据结构详解与实现
数据结构·链表
Zachery Pole18 小时前
CCF-CSP备战NO.7【队列】
算法
闪电悠米18 小时前
力扣hot100-48.旋转图像-转置翻转详解
算法·leetcode·职场和发展
满天星830357719 小时前
【算法】最长递增子序列(三种解法)
算法
啦啦啦啦啦zzzz19 小时前
算法:贪心算法
c++·算法·leetcode·贪心算法
清泓y21 小时前
RAG 技术
算法·ai
阿慧今天瘦了嘛21 小时前
计算机组成原理概述:从硬件到软件的桥梁
计算机网络·算法