一、题目
函数原型:
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
相关推荐
luj_17684 小时前
残熵算法实时化三大瓶颈突破mCell4 小时前
你以为短链接只是 Hash + 301/302?KaMeidebaby6 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路luj_17686 小时前
心形曲线轨迹控制三大关键技术tmlx3I0817 小时前
高光谱拼接算法(六)RANSAC 误匹配剔除不相心 -w-7 小时前
基础-滑动窗口-(定长 | 不定长)醉城夜风~7 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)ysa0510307 小时前
【板子】ST表CHHH_HHH8 小时前
【C++11】深入解析C++可变参数模板hurrycry_小亦8 小时前
洛谷题目:P1215 [USACO1.4] 母亲的牛奶 Mother‘s Milk 题解(本题简)