一、题目
函数原型:
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
相关推荐
啦哈拉哈12 分钟前
【Python】知识点零碎学习4iAkuya17 分钟前
(leetcode)力扣100 46二叉树展开为链表(递归||迭代||右子树的前置节点)爱喝可乐的老王17 分钟前
线性回归模型案例:广告投放效果预测程序员-King.1 小时前
day151—双端队列—找树左下角的值(LeetCode-513)苦藤新鸡1 小时前
15 .数组右移动k个单位狐571 小时前
2026-01-19-牛客每日一题-阅读理解氷泠2 小时前
路径总和系列(LeetCode 112 & 113 & 437 & 666)橘颂TA2 小时前
【剑斩OFFER】算法的暴力美学——力扣 130 题:被围绕的区域一分之二~2 小时前
回溯算法--解数独