一、题目
函数原型:
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
相关推荐
文丑颜不良啊7 小时前
LeetCode1941~1960题目解析老师我太想进步了202611 小时前
【数据结构-4】算法美学之顺序表风影同志7832411 小时前
编码器是激活函数吗?—— 一个看起来很像、其实不是的类比UIU11411 小时前
P1481 魔族密码文丑颜不良啊12 小时前
LeetCode1961~1980题目解析文丑颜不良啊12 小时前
LeetCode2001~2020题目解析加宝的起点雷达14 小时前
40 条候选里 38 条来自同一个源,主卡整屏重样秋天的怀念_David14 小时前
算法一千零一夜 · 第二十六夜 协议的母语文丑颜不良啊15 小时前
LeetCode2021~2040题目解析