一、题目
函数原型:
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
相关推荐
mjhcsp8 分钟前
莫比乌斯反演总结爱编码的傅同学43 分钟前
【今日算法】LeetCode 25.k个一组翻转链表 和 43.字符串相乘stolentime44 分钟前
P14978 [USACO26JAN1] Mooclear Reactor S题解老歌老听老掉牙1 小时前
差分进化算法深度解码:Scipy高效全局优化实战秘籍CSDN_RTKLIB1 小时前
C++多元谓词LYS_06181 小时前
寒假学习(2)(C语言2+模数电2)listhi5201 小时前
压缩感知信号重构的块稀疏贝叶斯学习(BSBL)算法:原理、实现与应用摸个小yu1 小时前
【力扣LeetCode热题h100】哈希、双指针、滑动窗口充值修改昵称1 小时前
数据结构基础:B+树如何优化数据库性能Cinema KI2 小时前
一键定位,哈希桶的极速魔法