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

【LeetCode-中等题】142. 环形链表 II

文章目录

    • 题目
    • 方法一:哈希表set去重
    • 方法二:快慢指针

题目

在这里插入图片描述

方法一:哈希表set去重

思路:我们遍历链表中的每个节点,并将它记录下来;一旦遇到了此前遍历过的节点,就可以判定链表中存在环。借助哈希表可以很方便地实现。

   public ListNode detectCycle(ListNode head) {if(head == null) return null;if(head.next==null) return null;if(head.next.next == head) return head;Set<ListNode> NodeSet = new HashSet<>();while(head != null){if(NodeSet.add(head)){head =head.next;continue;}else return head;}return null;}

方法二:快慢指针

第一次快慢指针相遇后。马上让新指针ptr从head 和slow同步走,最终会在环点相遇

在这里插入图片描述

public ListNode detectCycle(ListNode head) {if (head == null) return null;ListNode fast = head;//快指针ListNode slow = head;//慢指针while(fast!=null){//满足快指针不空指针异常(fast.next.next!=null)//移动指针slow = slow.next;if(fast.next !=null) fast = fast.next.next;else return null;if(fast==slow) {//说明一定有环了ListNode ptr = head;//定义新指针从head出发while(ptr != slow){ptr = ptr.next;slow = slow.next;}return ptr;}}return null;}
http://www.lryc.cn/news/142648.html

相关文章:

  • Android TV开发之VerticalGridView
  • SpringBoot+Vue项目添加腾讯云人脸识别
  • 什么是IPv4?什么又是IPv6?
  • 飞腾FT-2000/4、D2000 log报错指导(3)
  • 基于安卓的考研助手系统app 微信小程序
  • Leetcode:238. 除自身以外数组的乘积【题解超详细】
  • 基于单片机的智能数字电子秤proteus仿真设计
  • 大数据(二)大数据行业相关统计数据
  • Ruoyi安装部署(linux环境、前后端不分离版本)
  • PHP聚合支付网站源码/对接十多个支付接口 第三方/第四方支付/系统源码
  • 容器化微服务:用Kubernetes实现弹性部署
  • DevOps系列文章 之 Python基础
  • Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2) A ~ D
  • [管理与领导-53]:IT基层管理者 - 8项核心技能 - 8 - 持续改进
  • 芯片验证板卡设计原理图:446-基于VU440T的多核处理器多输入芯片验证板卡
  • 几个nlp的小任务(机器翻译)
  • 飞腾X100 LPDDR颗粒线序配置辅助工具
  • 二、数学建模之整数规划篇
  • C语言日常刷题 4
  • MyBatis plus 多数据源实现
  • k-近邻算法概述,k-means与k-NN的区别对比
  • node 项目搭建
  • CSS 属性值计算过程
  • QT版权查询
  • 【leetcode 力扣刷题】双指针///原地扩充线性表
  • 第八章,帖子列表
  • netty与websockt实现聊天
  • 21.2 CSS 三大特性与页面布局
  • MySQL 特殊语法时间格式以及Greadb连接
  • Python(.pyc)反编译:pycdc工具安装与使用