一、题目
函数原型:
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
相关推荐
NAGNIP23 分钟前
面试官:BatchNorm、LayerNorm、GroupNorm、InstanceNorm 有什么本质区别?Rock_yzh27 分钟前
LeetCode算法刷题——560. 和为 K 的子数组水水不水啊30 分钟前
通过一个域名,借助IPV6免费远程访问自己家里的设备.格子衫.39 分钟前
027动态规划之矩阵DP——算法备赛nju_spy41 分钟前
力扣每日一题(11.10-11.29)0-1 和 k 整除系列roman_日积跬步-终至千里1 小时前
【模式识别与机器学习(8)】主要算法与技术(下篇:高级模型与集成方法)之 元学习haing20191 小时前
Bezier曲线曲率极值的计算方法歌_顿1 小时前
深度学习算法以及优化器复习Zero不爱吃饭1 小时前
位1的个数爱思德学术1 小时前
中国计算机学会(CCF)推荐学术会议-C(计算机体系结构/并行与分布计算/存储系统):CF 2026