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

day14 leetcode-hot100-25(链表4)

141. 环形链表 - 力扣(LeetCode)

1.哈希集合

思路

将节点一个一个加入HashSet,并用contains判断是否存在之前有存储过的节点,如果有便是环,如果没有便不是环。

具体代码
/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public boolean hasCycle(ListNode head) {HashSet<ListNode> set = new HashSet<>();ListNode p = head;while(p!=null){if(set.contains(p)){return true;}set.add(p);p=p.next;}return false;}
}

 2.快慢指针

优化空间复杂度为O(1)

思路

一个慢指针每次走1格,一个快指针每次走2格,如果存在环肯定会相遇,如果不存在,最后都为null.

具体代码
/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public boolean hasCycle(ListNode head) {if(head == null){return false;}ListNode slow = head;ListNode fast = head.next;while(slow != null && fast != null){if(slow==fast){return true;}slow=slow.next;if(fast.next!=null){fast = fast.next.next;}else{return false;}}return false;}
}

http://www.xdnf.cn/news/729109.html

相关文章:

  • c++ 模板
  • es6+和css3新增的特性有哪些
  • 敏捷开发在AI团队的适配研究
  • 一文详谈Linux中的时间管理和定时器编程
  • Python训练营打卡Day40(2025.5.30)
  • Replacing iptables with eBPF in Kubernetes with Cilium
  • 云服务器如何自动更新系统并保持安全?
  • LeetCode hot100-8
  • 学习路之PHP--easyswoole_panel安装使用
  • CQF预备知识:Python相关库 -- NumPy 基础知识 - 线性代数 numpy.linalg
  • 51. N-Queens
  • 【学习笔记】深度学习-梯度概念
  • leetcode669.修剪二叉搜索树:递归法利用有序性精准剪枝
  • 三格电子——RS232/485/422转光纤的应用
  • Ubuntu 18.04 上源码安装 protobuf 3.7.0
  • 代购企业如何解决选品管理问题?
  • 历年上海交通大学计算机保研上机真题
  • Hive数据倾斜问题深度解析与实战优化指南
  • 宇树机器狗go2—slam建图(2)gmapping
  • 历年西安交通大学计算机保研上机真题
  • 小程序跳转H5或者其他小程序
  • KubeMQ 深度实践:构建可扩展的 LLM 中台架构
  • 使用FastAPI+Sqlalchemy从一个数据库向另一个数据库更新数据(sql语句版)
  • 在线政治采购系统架构构建指南
  • 【设计模式】责任链模式
  • Scratch节日 | 龙舟比赛 | 端午节
  • 历年南京大学计算机保研上机真题
  • 信息化项目验收测试:MES 系统验收测试的测试重点
  • 海思 35XX MIPI读取YUV422
  • USB MSC SCCI