141. 环形链表(java实现)--2种解法(双指针,hahs)LeetCode
文章目录
- 题目:
- 解法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相关推荐
- 《LeetCode力扣练习》第141题 环形链表 Java
<LeetCode力扣练习>第141题 环形链表 Java 一.资源 题目: 给你一个链表的头节点 head ,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针 ...
- LeetCode 141. 环形链表 简单难度
** 141. 环形链表 ** 给定一个链表,判断链表中是否有环. 如果链表中存在环,则返回 true . 否则,返回 false . 解题思路(两种方法): 方法一:用集合set以及set.find ...
- LeetCode - 141. 环形链表
141. 环形链表 import java.util.Objects;class ListNode {int val;ListNode next;ListNode(int x) {val = x;ne ...
- 快慢指针:141. 环形链表(判断是否存在环路)
题目描述 给定一个链表,判断链表中是否有环 题目链接 141. 环形链表 解题思路 使用快慢指针(Floyd判圈算法):从链表的头部设置两个指针,p1的步长为1, p2的步长为2,同时向前走,如果p1 ...
- 141. 环形链表 golang
141. 环形链表 给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. ...
- 【LeetCode】【HOT】141. 环形链表(快慢指针)
[LeetCode][HOT]141. 环形链表 文章目录 [LeetCode][HOT]141. 环形链表 package hot;class ListNode{int val;ListNode n ...
- 【leetcode刷题】16.环形链表——Java版
⭐欢迎订阅<leetcode>专栏,每日一题,每天进步⭐ 使用快慢指针,若指针相遇则判断有环 --leetcode此题热评 前言 哈喽,大家好,我是一条. 糊涂算法,难得糊涂 Questi ...
- 【Leetcode】拿捏链表(四)——160. 相交链表、141. 环形链表、142. 环形链表 II
作者:一个喜欢猫咪的的程序员 专栏:<Leetcode> 喜欢的话:世间因为少年的挺身而出,而更加瑰丽. --<人民 ...
- java binarytreenode_LeetCode算法题-Binary Tree Paths(Java实现-3种解法)
这是悦乐书的第199次更新,第206篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第62题(顺位题号是257).给定二叉树,返回所有根到叶路径.例如: 输入: 1 / \ ...
- LeetCode算法题-Number Complement(Java实现-五种解法)
这是悦乐书的第240次更新,第253篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第107题(顺位题号是476).给定正整数,输出其补码数.补充策略是翻转其二进制表示的位 ...
最新文章
- Python的f-strings格式化
- 均值滤波java_均值滤波,中值滤波,最大最小值滤波
- 一个视觉交互设计失败的案例
- 中小型企业纯开源免费工具的解决方案
- 多项式幂函数(加强版)
- android申请权限一次性申请多个,android 6.0以上动态一次申请多个权限-最美解决方案...
- 【英语学习】【WOTD】inexorable 释义/词源/示例
- 为什么我们应该使用 Flutter?
- L1-011. A-B-PAT团体程序设计天梯赛(GPLT)
- noip2009 普及组
- Nginx 性能调优
- 【图像分割】基于matlab粒子群优化指数熵图像分割【含Matlab源码 287期】
- linux 查看各个用户下线程使用情况
- MFC在指定控件区域内进行一些操作
- UML(Unified Modeling Language) 统一建模语言
- 水库大坝安全监测系统解决方案
- Rax新手入门 - 快速构建多端应用
- Android Studio开发手机APP(二)-利用MQTT通信开发物联网程序
- 视差贴图(Parallax Mapping)
- 北斗卫星与GPS介绍
热门文章
- 虫师Selenium2+Python_2、测试环境搭建
- 2021年度总结:区块链农业技术领袖平台Dimitra
- IT行业中说话最不靠谱的商业领袖
- 计算机加密恢复,系统小技巧:BitLocker密钥恢复二三事
- python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门
- 色播病毒浅析——美玉在外 败絮其中
- 九宫重排 蓝桥杯c++ 题解 字符串hash+bfs
- scRNA-seq | 吐血整理的单细胞入门教程(ID转换)(六)
- iOS H5 获取麦克风权限
- Nginx启动和停止报No mapping for the Unicode character exists in the target multi-byte code...错误的解决方法