一、题目
函数原型:
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
相关推荐
小程故事多_8012 分钟前
从A2C、TRPO、PPO到GRPO,强化学习策略梯度算法完整演进与大模型落地实战解析2601_956121972 小时前
二分算法(知识点+题目)AndrewHZ4 小时前
【LLM技术全景】阶段总结:技术原理篇核心知识回顾小星星闪亮登场5 小时前
2026萌新联赛第三场-- (郑州轻工业大学)冻柠檬飞冰走茶6 小时前
PTA基础编程题目集 7-8超速判断(C++语言实现)玖玥拾6 小时前
LeetCode 88 合并两个有序数组数据皮皮侠AI7 小时前
上市公司数字供应链金融指数(2010-2024)小程故事多_807 小时前
用GRPO算法重塑多智能体系统,从原理落地到复杂任务规划实战Hi李耶8 小时前
【LeetCode】541.反转字符串 IIshylyly_8 小时前
104.二叉树的最大深度