一、题目
函数原型:
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
相关推荐
旖旎夜光几秒前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解白露与泡影2 小时前
解密 Pi 的 Harness 工程:Agent 会话如何实现持久化与恢复happyprince3 小时前
01-整体观-Codex全貌解读(源码)俊基科技4 小时前
别自己写算法了,让这颗37.5毫米的模组替你“闭嘴干活”_Narcissus_4 小时前
动态规划初探(含完整代码实现)世人万千丶5 小时前
鸿蒙项目实战 - 社区活动编排板:标签云布局算法与自动换行zander2585 小时前
LeetCode 279. 完全平方数典典分享指南6 小时前
VS Code Git 工作树:解锁多分支并行开发新体验_Narcissus_6 小时前
枚举和模拟算法笔记