一、题目
函数原型:
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
相关推荐
Black蜡笔小新2 小时前
自动化AI算法训练服务器DLTM助力医学影像分析进入AI智能分析新时代手写码匠2 小时前
深入解析大模型架构之争:全能通用模型 vs 领域专精模型浅念-3 小时前
LeetCode 回溯算法题——综合练习列星随旋3 小时前
线段树和树状数组的学习圣保罗的大教堂4 小时前
leetcode 61. 旋转链表 中等全糖可乐气泡水5 小时前
Codex适配国产信创环境安装部署与技术适配全解析h_a_o777oah6 小时前
状态机+划分型 DP :深度解析K-划分问题下 DP 状态的转移逻辑(洛谷P2679 P2331 附C++代码)05候补工程师6 小时前
从算法理想向工程现实的跨越:SLAM 核心架构、思维误区与 Nav2 实战避坑指南手写码匠7 小时前
Android 17 适配实战指南:新特性解读、隐私变更与迁移全攻略