
[LeetCode题解]141. 环形链表 | 快慢指针
发布日期:2021-05-09 04:32:23
浏览次数:8
分类:博客文章
本文共 942 字,大约阅读时间需要 3 分钟。
题目描述
给定一个链表,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。
如果链表中存在环,则返回 true 。 否则,返回 false 。
进阶:
你能用 O(1)(即,常量)内存解决此问题吗?
提示:
- 链表中节点的数目范围是 [0, 104]
- -105 <= Node.val <= 105
- pos 为 -1 或者链表中的一个 有效索引 。
解题思路
使用快慢指针:当两个指针碰头表示有环。
代码
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public bool HasCycle(ListNode head) { // 快慢指针:当两个指针碰头表示有环 ListNode fast = head, slow = head; while(fast != null && fast.next != null) { fast = fast.next.next; slow = slow.next; if(fast == slow) { return true; } } return false; }}
复杂度分析
- 时间复杂度:\(O(n)\),其中 \(n\) 是链表长度。
- 空间复杂度:\(O(1)\)
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月08日 00时28分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MyBatis 面试题
2021-05-09
最难的不是递归,是这场面试的有缘无分
2021-05-09
学会了这个开源工具,这就和产品妹子对线!
2021-05-09
源码解析之 Mybatis 对 Integer 参数做了什么手脚?
2021-05-09
oracle使用DBMS_RANDOM包生成随机数据
2021-05-09
[转]收集Oracle UNDO诊断信息脚本
2021-05-09
.NET Core 2.0 Preview 1发布下载和文档
2021-05-09
Qt快速入门之三:Qt项目建立、编译、运行和源码详解
2021-05-09
Qt 布局之三:栅格布局的使用详解
2021-05-09
【QML 快速入门】属性(Properties)
2021-05-09
音视频基础知识---像素格式YUV(转)
2021-05-09
音视频-测试工具推荐
2021-05-09
【设计模式 - 结构型模式】1. 适配器模式
2021-05-09
springboot2配置文件定义${user.name}内容失效问题探究
2021-05-09
C++9018:2333/2235——柠檬汽水(Lemonade Line)
2021-05-09
力扣 - 430. 扁平化多级双向链表
2021-05-09
力扣 - 232. 用栈实现队列.md
2021-05-09
过滤器和监听器总结
2021-05-09
MinIO分布式集群的扩展方案及实现
2021-05-09