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

Leetcode Top100(23)环形链表

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

1.hash表方式

2.快慢指针(一个指针每次移动2下 一个只移动一下 如果存在环一定会有相等的时候(在环中,一个指针相对另一个指针移动速度为1)

package TOP21_30;import Util.ListNode;import java.util.HashSet;
import java.util.Set;// 环形链表
/*
给你一个链表的头节点 head ,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。
如果链表中存在环 ,则返回 true 。 否则,返回 false 。
*/
public class Top23 {//空间复杂度o(n)public static boolean hasCycle(ListNode head) {//hash表方式if(head==null){return false;}Set<ListNode> nodeSet = new HashSet<>();while (head!=null){if(nodeSet.contains(head)){return true;}nodeSet.add(head);head=head.next;}return false;}// 快慢指针 一个指针每次移动2下 一个只移动一下 如果存在环一定会有相等的时候(在环中,一个指针相对另一个指针移动速度为1)//空间复杂度o(1)public static boolean hasCycle2(ListNode head){if(head == null){return false;}ListNode slow = head;ListNode fast = head.next;while (slow!=fast){if(fast == null ||fast.next ==null){return false;}slow = slow.next;fast = fast.next.next;}return true;}
}

ListNode

package Util;public class ListNode {public int val;public ListNode next;public ListNode() {}public ListNode(int val) {this.val = val;}public ListNode(int val, ListNode next) {this.val = val;this.next = next;}public static ListNode setNodes(int index,int[] nums){ListNode res = new ListNode();res.val = nums[index];if(index == nums.length-1){res.next = null;return res;}else{res.next = setNodes(index+1,nums);}return res;}public static void printListData(ListNode node){while (node!=null){System.out.println(node.val);node = node.next;}}
}

harryptter / LeetcodeTop100 · GitCode

http://www.lryc.cn/news/174952.html

相关文章:

  • 线性代数基础-行列式
  • RT-Thread(学习)
  • 【MySQL】 MySQL 死锁问题分析优化器特性及优化方案
  • 【C++面向对象侯捷】8.栈,堆和内存管理
  • 在比特币上使用可检索性证明支付存储费用
  • 使用SSE(Server-Sent Events)实现服务端给客户端发消息
  • 【Redis】使用rpm包安装redis
  • 论文阅读-Group-based Fraud Detection Network on e-Commerce Platforms
  • java程序启动时指定JVM内存参数和Xms、Xmx参数学习
  • 【C++编程能力提升】
  • FlashDuty Changelog 2023-09-21 | 自定义字段和开发者中心
  • 贪心算法-
  • 漫谈:C语言 C++ 左值、右值、类型转换
  • 前车之鉴,后车之师
  • WEB使用VUE3实现地图导航跳转
  • 今天聊一聊高性能系统架构设计是什么样的
  • 鼠标不动了怎么办?3招解决问题!
  • 2023-09-23力扣每日一题
  • C#中使用Newtonsoft.Charp实现Json对象序列化与反序列化
  • Golang开发--互斥锁和读写锁
  • Springboot 集成WebSocket作为客户端,含重连接功能,开箱即用
  • java调整字符串
  • 2023-9
  • 软考高级+系统架构设计师教程+第二版新版+电子版pdf
  • 【产品运营】如何提升B端产品竞争力(下)
  • uniapp 微信小程序使用echarts
  • 【漏洞复现】企望制造 ERP命令执行
  • 2023 “华为杯” 中国研究生数学建模竞赛(E题)深度剖析|数学建模完整代码+建模过程全解全析
  • 【腾讯云国际站】CDN内容分发网络特性介绍
  • 【工业机器人视觉】