一、题目
函数原型:
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
相关推荐
yzs8733 分钟前
OLAP数据库HashJoin性能优化揭秘好家伙VCC1 小时前
**发散创新:编译器优化实战——从LLVM IR到性能飞跃的奇妙旅程**季明洵1 小时前
数据在内存中的存储weixin_458872611 小时前
东华复试OJ每日3题打卡·复盘85~87追随者永远是胜利者1 小时前
(LeetCode-Hot100)70. 爬楼梯不想看见4041 小时前
Climbing Stairs 基本动态规划:一维--力扣101算法题解笔记陈天伟教授1 小时前
人工智能应用- 推荐算法:05.推荐算法的社会争议追随者永远是胜利者1 小时前
(LeetCode-Hot100)49. 字母异位词分组apcipot_rain1 小时前
原神“十盒半价”问题的兹白式建模分析小刘的大模型笔记1 小时前
PPO与DPO:大模型对齐的两大核心算法,差异与选型全解析