一、题目
函数原型:
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
相关推荐
机器人零零壹2 小时前
技术白皮书:iRobotCAM如何解决机器人激光切割应用中的核心难点,从CAD离线编程到双目视觉定位与轨迹自适应提升复杂空间曲线切割的精度、效率与柔性化水平ZhengEnCi5 小时前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱取名真是6 小时前
Python 算法知识点从基础到进阶罗西的思考6 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示nm_zfyjt8 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)w_zero_one10 小时前
算法--构造其实防守也摸鱼10 小时前
信创安全竞赛知识总结与题库小超人诞生日记11 小时前
C++ 智能指针的使用及其原理详解AiNightVision15 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南