一、题目
函数原型:
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
相关推荐
linx2953 分钟前
单元九 · 零基础路线图-第 7–9 周·类与 RAII布莱克6056 分钟前
C++ 七大排序算法详解:选择、冒泡、插入、计数、堆、快速与归并排序shehuiyuelaiyuehao1 小时前
算法44,模拟算法,数青蛙hanlin031 小时前
刷题笔记:力扣第287题-寻找重复数kevin_kang1 小时前
第02章 对话时间线与延迟分析科学实验家1 小时前
最小生成树:Prim,kruskal学习智者1 小时前
《玄》IDE v3.6.3重磅发布:全功能修复与性能飞跃Jasmine_llq1 小时前
《P10263 [GESP202403 八级] 公倍数问题》橘子汽水1681 小时前
Leetcode 322 279 零钱兑换,完全平方数kevin_kang2 小时前
第01章 VoiceAgent 的总体架构与完整流程