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

LCR 021

题目:LCR 021


解法一:快慢指针

判断循环是否存在,一般用快慢指针算法解决。

fast 每次走两个单位,slow 每次走一个单位。当二者在环内相遇时,再创建一个指针 ptr 指向 head ,和 slow 同时走,每次走一个单位,slowptr 指针相遇位置,便是入环点

    public ListNode detectCycle(ListNode head) {ListNode slow = head, fast = head, ptr = head;while (fast != null) {slow = slow.next;//空指针判断if (fast.next == null) return null;else fast = fast.next.next;if (fast == slow) {while (ptr != slow) {ptr = ptr.next;slow = slow.next;}return ptr;}}return null;}
}

注意fast每次走两个单位,当已经指向最后一个元素时,再连续走两个单位就会报空指针异常,因此fast走两个单位时需要作空指针判断



http://www.mrgr.cn/news/23861.html

相关文章:

  • 智能优化算法-樽海鞘优化算法(SSA)(附源码)
  • 一款好用的电子样本册转换器
  • JAVA中在junit测试类中加载Spring托管,通过注解使用Bean
  • shell的使用sed处理数据
  • 轻量级模型解读——GhostNet系列
  • Git版本控制工具
  • day-52 三数之和
  • Qt放Element网页滑动菜单栏
  • udp的广播,多播,单播 demo
  • 图书馆上新了!新华书店×度小满推出“开学季悦读计划”公益活动
  • OpenCV findTours函数及其用法
  • Hive SQL子查询应用
  • springboot基础-Druid数据库连接池使用
  • [产品管理-4]:NPDP新产品开发 - 2 - 制定企业经营战略目标的结构化方法与工具
  • [Python]一文掌握Nuitka 参数语法详细介绍与示例
  • 7.科学计算模块Numpy(4)ndarray数组的常用操作(二)
  • WindTerm 2.6.1:全新版本,更强大,更便捷!
  • Web开发:ABP框架2——层次结构、ORM的使用、Webapi控制器的编写
  • 计算机网络:概述 - 计算机网络概述
  • c语言--力扣简单题目(删除排序链表中的重复元素)讲解