一、题目
函数原型:
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
相关推荐
算AI25 分钟前
基于LLM的无人机仿真测试:新方法竞赛夺佳绩kaixin_啊啊1 小时前
专用优化算法LKH_Narcissus_3 小时前
二分算法笔记及例题tachibana23 小时前
RAGAS 指标解读qq_419563094 小时前
ToT 的 BFS/DFS 有个致命缺口:蒙特卡洛树搜索(MCTS)用「随机试错+统计」让大模型想得更深,小模型 + 它竟超过 GPT-4万法若空5 小时前
CSP-J/S 排序算法完整专题训练题单凉茶钱5 小时前
【数据结构】排序(快排,选择,直接插入,希尔)weixin_446260855 小时前
拆解再复用:大模型智能体的跨任务技能迁移Brilliantwxx5 小时前
【Linux】 进程(4)七大进程状态深度解析青少儿编程课堂5 小时前
用图形化编程做一个“少年探险闯关”小游戏:方向键控制、碰撞检测与多关卡串起完整项目