一、题目
函数原型:
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
相关推荐
小羊在睡觉6 小时前
力扣84. 柱状图中最大的矩形3DVisionary6 小时前
蓝光三维扫描:医疗制造的精度焦虑怎么解好评笔记6 小时前
机器学习面试八股——常用损失函数weixin_468466856 小时前
全局与局部注意力机制新手实战指南sheeta19986 小时前
LeetCode 每日一题笔记 日期:2026.05.29 题目:3300. 最小元素_日拱一卒6 小时前
LeetCode:994腐烂的橘子珂朵莉MM7 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--束搜索Omics Pro8 小时前
首个!外源天然产物综合性代谢图谱voidmort8 小时前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想人道领域8 小时前
【LeetCode刷题日记】669.修剪二叉搜索树