一、题目
函数原型:
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
相关推荐
To_OC5 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定Forever Nore7 小时前
学完C语言力扣第一题做不来正常吗hansang_IR8 小时前
【题解】LC:倍增 / 区间并查集(Range Parallel Unionfind)Tisfy9 小时前
LeetCode 3731.找出缺失的元素:哈希 / 排序lucas_AI10 小时前
Q-CueGraph:你的多模态大模型会 zoom,但真的知道该看哪儿吗?kaixin_啊啊10 小时前
test_机器学习算法学习liulilittle10 小时前
MOE路由:路由(logits: top-k/8)旖旎夜光10 小时前
LeetCode 11:盛最多水的容器(双指针问题) —— 题解一只齐刘海的猫10 小时前
【Leetcode】乘积最大子数组