一、题目
函数原型:
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
相关推荐
兰令水3 分钟前
leecodecode【二叉树排序+最近公共祖先】【2026.6.2打卡-java版本】人道领域3 分钟前
【LeetCode刷题日记】77&&216.回溯算法剪枝优化在组合问题中的应用Deepoch6 分钟前
Deepoc数学大模型:以低幻觉特性护航半导体精准设计与制造诸葛务农6 分钟前
共沸脱水技术及其在光刻胶用PGMEA纯化中的应用(上)£suPerpanda8 分钟前
AtCoder Beginner Contest 453圣保罗的大教堂12 分钟前
leetcode 3633. 最早完成陆地和水上游乐设施的时间 I 简单词元Max17 分钟前
4.2 决策树与随机森林菜菜的顾清寒25 分钟前
力扣HOT100(51) 动态规划-单词拆分风筝在晴天搁浅33 分钟前
剑指Offer LCR 143.子结构判断咖啡八杯42 分钟前
GoF设计模式——装饰模式