一、题目
函数原型:
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
相关推荐
Gold_Dino7 分钟前
agc011_e 题解bubiyoushang88822 分钟前
基于蚁群算法的直流电机PID参数整定 MATLAB 实现风筝在晴天搁浅30 分钟前
hot100 240.搜索二维矩阵Ⅱgirl-072638 分钟前
2025.12.24代码分析永远睡不够的入1 小时前
直接插入排序、希尔排序、选择排序历程里程碑1 小时前
hot 206Tipriest_1 小时前
C++ 的 ranges 和 Python 的 bisect 在二分查找中的应用与实现晨晖22 小时前
顺序查找:c语言LYFlied3 小时前
【每日算法】LeetCode 64. 最小路径和(多维动态规划)Salt_07283 小时前
DAY44 简单 CNN