文章目录

  • 题目:
  • 解法1:双指针
  • 解法2:hash

题目:

给你一个链表的头节点 head ,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。

如果链表中存在环 ,则返回 true 。 否则,返回 false 。

示例 1:

输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。

示例 2:

输入:head = [1,2], pos = 0
输出:true
解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:

输入:head = [1], pos = -1
输出:false
解释:链表中没有环。

提示:

链表中节点的数目范围是 [0, 10^4]
-10^5 <= Node.val <= 10^5
pos 为 -1 或者链表中的一个 有效索引

解法1:双指针

    /*** 思路:* 设置快慢指针* 只要快慢指针相遇就是有环*/public static boolean hasCycle(ListNode head) {ListNode slow=head,fast=head;while (fast!=null&&fast.next!=null){fast=fast.next.next;slow=slow.next;if (fast==slow){return true;}}return false;}

时间复杂度:On

空间复杂度:O1

解法2:hash

    /*** 思路:* 把节点存储到set中,只要set中包含说明有环*/public static boolean hasCycle(ListNode head) {HashSet<ListNode> set = new HashSet<>();while (head!=null){if (set.contains(head)){return true;}set.add(head);head=head.next;}return false;}

时间复杂度:Onlogn

空间复杂度:On

141. 环形链表(java实现)--2种解法(双指针,hahs)LeetCode相关推荐

  1. 《LeetCode力扣练习》第141题 环形链表 Java

    <LeetCode力扣练习>第141题 环形链表 Java 一.资源 题目: 给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针 ...

  2. LeetCode 141. 环形链表 简单难度

    ** 141. 环形链表 ** 给定一个链表,判断链表中是否有环. 如果链表中存在环,则返回 true . 否则,返回 false . 解题思路(两种方法): 方法一:用集合set以及set.find ...

  3. LeetCode - 141. 环形链表

    141. 环形链表 import java.util.Objects;class ListNode {int val;ListNode next;ListNode(int x) {val = x;ne ...

  4. 快慢指针:141. 环形链表(判断是否存在环路)

    题目描述 给定一个链表,判断链表中是否有环 题目链接 141. 环形链表 解题思路 使用快慢指针(Floyd判圈算法):从链表的头部设置两个指针,p1的步长为1, p2的步长为2,同时向前走,如果p1 ...

  5. 141. 环形链表 golang

    141. 环形链表 给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. ...

  6. 【LeetCode】【HOT】141. 环形链表(快慢指针)

    [LeetCode][HOT]141. 环形链表 文章目录 [LeetCode][HOT]141. 环形链表 package hot;class ListNode{int val;ListNode n ...

  7. 【leetcode刷题】16.环形链表——Java版

    ⭐欢迎订阅<leetcode>专栏,每日一题,每天进步⭐ 使用快慢指针,若指针相遇则判断有环 --leetcode此题热评 前言 哈喽,大家好,我是一条. 糊涂算法,难得糊涂 Questi ...

  8. 【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II

    作者:一个喜欢猫咪的的程序员 专栏:<Leetcode> 喜欢的话:世间因为少年的挺身而出,而更加瑰丽.                                  --<人民 ...

  9. java binarytreenode_LeetCode算法题-Binary Tree Paths(Java实现-3种解法)

    这是悦乐书的第199次更新,第206篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第62题(顺位题号是257).给定二叉树,返回所有根到叶路径.例如: 输入: 1 / \ ...

  10. LeetCode算法题-Number Complement(Java实现-五种解法)

    这是悦乐书的第240次更新,第253篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第107题(顺位题号是476).给定正整数,输出其补码数.补充策略是翻转其二进制表示的位 ...

最新文章

  1. Python的f-strings格式化
  2. 均值滤波java_均值滤波,中值滤波,最大最小值滤波
  3. 一个视觉交互设计失败的案例
  4. 中小型企业纯开源免费工具的解决方案
  5. 多项式幂函数(加强版)
  6. android申请权限一次性申请多个,android 6.0以上动态一次申请多个权限-最美解决方案...
  7. 【英语学习】【WOTD】inexorable 释义/词源/示例
  8. 为什么我们应该使用 Flutter?
  9. L1-011. A-B-PAT团体程序设计天梯赛(GPLT)
  10. noip2009 普及组
  11. Nginx 性能调优
  12. 【图像分割】基于matlab粒子群优化指数熵图像分割【含Matlab源码 287期】
  13. linux 查看各个用户下线程使用情况
  14. MFC在指定控件区域内进行一些操作
  15. UML(Unified Modeling Language) 统一建模语言
  16. 水库大坝安全监测系统解决方案
  17. Rax新手入门 - 快速构建多端应用
  18. Android Studio开发手机APP(二)-利用MQTT通信开发物联网程序
  19. 视差贴图(Parallax Mapping)
  20. 北斗卫星与GPS介绍

热门文章

  1. 虫师Selenium2+Python_2、测试环境搭建
  2. 2021年度总结:区块链农业技术领袖平台Dimitra
  3. IT行业中说话最不靠谱的商业领袖
  4. 计算机加密恢复,系统小技巧:BitLocker密钥恢复二三事
  5. python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门
  6. 色播病毒浅析——美玉在外 败絮其中
  7. 九宫重排 蓝桥杯c++ 题解 字符串hash+bfs
  8. scRNA-seq | 吐血整理的单细胞入门教程(ID转换)(六)
  9. iOS H5 获取麦克风权限
  10. Nginx启动和停止报No mapping for the Unicode character exists in the target multi-byte code...错误的解决方法