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

leedcode【142】. 环形链表 II——Java解法

Problem: 142. 环形链表 II

  1. 思路
  2. 解题方法
  3. 复杂度
  4. Code
  5. 性能

思路

1.用快慢指针找到相遇的点(快指针一次走一步,慢指针一次走两步)
2.一个指针从head开始,一个指针从相遇点开始,一次一步,相遇处即为环入口

解题方法

详解见链接:
https://programmercarl.com/%E9%93%BE%E8%A1%A8%E6%80%BB%E7%BB%93%E7%AF%87.html#%E9%93%BE%E8%A1%A8%E7%BB%8F%E5%85%B8%E9%A2%98%E7%9B%AE

复杂度

时间复杂度:

O(n)

空间复杂度:

O(1)快慢指针相遇前,指针走的次数小于链表长度,快慢指针相遇后,两个index指针走的次数也小于链表长度,总体为走的次数小于 2n

Code

Java

/*** Definition for singly-linked list.* class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode detectCycle(ListNode head) {//先找相遇节点ListNode fast = head; // 快指针,一次走两步ListNode slow = head; // 慢指针,一次走一步//找快慢指针相遇节点while(fast != null && fast.next != null){fast = fast.next.next;slow = slow.next;if(fast == slow){ListNode index1 = fast;ListNode index2 = head;while(index1 != index2){index1 = index1.next;index2 = index2.next;}return index1;}}return null;}
}

性能

image.png

相关文章:

  • K8s的常用命令以及yaml文件的创建
  • ABC354学习笔记
  • 基于Arduino IDE的ESP32开发环境搭建
  • PyQt6--Python桌面开发(33.QToolBar工具栏控件)
  • java “错误:编码GBK 的不可映射字符”
  • 云计算和大数据处理
  • 9.1 Go语言入门(环境篇)
  • 增强版 Kimi:AI 驱动的智能创作平台,实现一站式内容生成(图片、PPT、PDF)!
  • C++中string类的初步介绍
  • Spring Web MVC(2)
  • day16二叉树part03 | 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
  • 应用程序图标提取
  • Elasticsearch 8.1官网文档梳理 - 十三、Search your data(数据搜索)
  • 卡码网笔试 | 118 小y删数字、119 小红的字符串切割、120 小红的数字匹配
  • 如何用ai打一场酣畅淋漓的数学建模比赛? 给考研加加分!
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 2017-08-04 前端日报
  • Brief introduction of how to 'Call, Apply and Bind'
  • ES6 ...操作符
  • java中具有继承关系的类及其对象初始化顺序
  • Js基础知识(一) - 变量
  • Linux中的硬链接与软链接
  • Node 版本管理
  • nodejs实现webservice问题总结
  • php ci框架整合银盛支付
  • Python_OOP
  • React-flux杂记
  • Redis在Web项目中的应用与实践
  • use Google search engine
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • vue--为什么data属性必须是一个函数
  • XML已死 ?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 详解移动APP与web APP的区别
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 回归生活:清理微信公众号
  • #vue3 实现前端下载excel文件模板功能
  • (2)空速传感器
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (每日一问)基础知识:堆与栈的区别
  • (篇九)MySQL常用内置函数
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (四)进入MySQL 【事务】
  • (一) 初入MySQL 【认识和部署】
  • (一)基于IDEA的JAVA基础1
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .gitignore文件---让git自动忽略指定文件
  • .NET 中的轻量级线程安全