一、题目
函数原型:
bool hasCycle(struct ListNode *head)
二、算法判断不是环形链表,只需遍历链表找到空结点即可。
判断是环形链表,由于链表是环形的,遍历不会永远不会结束。所以要设置快慢指针,慢指针一次走一步,快指针一次走两步。当两个指针都进入环时,快指针走地比慢指针快,因此快指针总会遇到慢指针。因此,判断是环形链表的条件是慢指针等于快指针。
三、代码
cppbool 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; }
leetcode:141. 环形链表
南林yan2023-11-08 20:02
相关推荐
hans汉斯几秒前
【计算机科学与应用】层级评论上下文依赖识别数据集构建与研究——以小红书旅游评论数据为例码行山野赴时序归途37 分钟前
顺序表(Sequential List)详解:从数组到 C 语言实现Lokey8681 小时前
自注意力机制与多头注意力机制linx2951 小时前
单元七 · 零基础路线图-第 1–3 周·变量、类型与字符串Benny_Tang1 小时前
P7514 [省选联考 2021 A/B 卷] 卡牌游戏 题解residual_fan1 小时前
经验模态重构:直向工业时间序列数据的数据扩增方法aramae2 小时前
模拟实现strcpy(字符串拷贝)(C语言)Benny_Tang2 小时前
「雅礼集训 2018 Day7」A 题解Doubbbbbbble云2 小时前
跳表结构在高并发系统中的应用与优势分析4TAN-90°-2 小时前
Deep Learning for Computer Vision——Large Scale Distributed Training