一、题目
函数原型:
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
相关推荐
UIU1142 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工论文复现现场2 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行ZhengEnCi2 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异秋天的怀念_David4 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚碧海银沙音频科技研究院4 小时前
在PC电脑上用Whisper→Marian算法实现离线语音翻译功能niyongsheng5 小时前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则j7~7 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集傅科摆 _ py8 小时前
DP,贪心,堆和栈,二分力扣复习Shaoshing9 小时前
LeetCode100 42.接雨水域限奇点访客9 小时前
用AI生成问卷的网站怎么选?看题目录入结构、题型映射和生成后的校验