一、题目
函数原型:
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
相关推荐
小O的算法实验室1 分钟前
2025年IEEE TASE,基于双层耦合平均场博弈的大规模智能体集成任务分配与轨迹规划8Qi86 分钟前
LeetCode 337:打家劫舍 III(House Robber III)—— 题解 ✅地平线开发者7 分钟前
从 INT64 Div 算子约束到 Cast 修复全流程2601_961194027 分钟前
教资科三美术考什么|初中高中美术题型考点和模板资料AI科技星10 分钟前
基于奇合数边界的离散解析数论与双螺旋宇宙本体大统一体系论文全部数学公式汇总表地平线开发者21 分钟前
Horizon 模型多 Batch 配置czhaii33 分钟前
GB2312简体中文编码表8Qi842 分钟前
LeetCode 121 & 122:股票买卖问题(DP 对比题解)✅一只齐刘海的猫1 小时前
【Leetcode】 接雨水南境十里·墨染春水1 小时前
讲讲移动语义