当前位置: 首页 > news >正文

leetcode141:环形链表

给你一个链表的头节点 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, 104]
-105 <= Node.val <= 105
pos 为 -1 或者链表中的一个 有效索引 。
进阶:你能用 O(1)(即,常量)内存解决此问题吗?

Related Topics
哈希表
链表
双指针

方法一:快慢指针

public class Solution {public boolean hasCycle(ListNode head) {if (head == null) {return false;}ListNode slow = head;ListNode fast = head.next;while (fast != null) {fast = fast.next;if (fast != null) {fast = fast.next;}if (fast == slow) {return true;}slow = slow.next;}return false;}
}

方法二:使用hashset

public class Solution {public boolean hasCycle(ListNode head) {Set<ListNode> set = new HashSet<>();while (head != null) {if (!set.add(head)) {return true;}head = head.next;}return false;}
}
http://www.lryc.cn/news/55832.html

相关文章:

  • lattice diamond软件使用
  • scala泛型
  • 程序员与ChatGPT的日常问答
  • 如何创建高效的Prompt和ChatGPT等大语言模型AI对话
  • 043:cesium加载Bing地图(多种形式)
  • vscode代码片段生成
  • 数据规整:聚合、合并和重塑
  • 开心档之C++ 信号处理
  • ChatGPT惨遭围剿?多国封杀、近万人联名抵制……
  • SpringBoot监听器
  • 【网络安全】SQL注入--报错注入
  • APP隐私整改建议
  • MySQL数据模型 and 通用语法 and 分类
  • 一款识别域名是否使用cdn的工具cdnChecker
  • Ant Design Vue的汉化
  • spring cloud中实现接口广播请求到服务提供者
  • 电机PID参数调节笔记
  • 【深度学习】基于华为MindSpore的手写体图像识别实验
  • Linux:内核调试之内核魔术键sysrq
  • Python import导包快速入门
  • ChatGPT这么火,我们能怎么办?
  • HashMap底层原理
  • 卡顿优化小结
  • springboot前端ajax 04 关于后台传的时间和状态在前端的转换
  • 解决Windows微信和 PowerToys 的键盘管理器冲突
  • 组会时间的工作
  • linux udp bind 返回值-1分析
  • Hexo搭建博客
  • Lesson11:http协议
  • 计算机信息安全有哪些SCI期刊推荐? - 易智编译EaseEditing