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

算法——环形链表(leetcode141)

判断一个链表是否是环形链表,这题可以用快慢指针来解决,首先令快慢指针fastIndex、slowIndex等于head头节点,接着来一个循环 循环体是fastIndex步进两个单位slowIndex步进一个单位判断如果slowIndex等于fastIndex则是有环 因为fastIndex走的比slowIndex快所以如果链表无环那么fastIndex肯定最先遍历至链表的末尾,故循环条件是(fastIndex!=null&&fastIndex.next!=null)一定要注意的是循环体的条件一定不能颠倒我们使用短路与就会避免报空指针的错误情况(fastIndex已经为null了那么如果再执行表达式fastIndex.next就是空指针了)

/**
 * 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) {
        ListNode slowIndex = head;
        ListNode fastIndex = head;
        while (fastIndex != null&&fastIndex.next != null) {
            fastIndex = fastIndex.next.next;
            slowIndex = slowIndex.next;
            if (fastIndex == slowIndex)
                return true;
        }
        return false;
    }
}


http://www.kler.cn/a/405201.html

相关文章:

  • 什么是Hadoop
  • 【vba源码】导入excel批注信息
  • C++桥接模式在使用时需要注意什么
  • 音视频pts/dts
  • Linux 服务器使用指南:从入门到登录
  • Bug:引入Feign后触发了2次、4次ContextRefreshedEvent
  • Java 获取本机 IP 地址的方法
  • Flink调优详解:案例解析(第42天)
  • 解决 redis 的 key 出现的序列化 \xac\xed\x00\x05t\x00 乱码问题
  • SSM post接口传递json 报错 HTTP状态 415 - 不支持的媒体类型
  • 一篇文章了解机器学习
  • 01 —— Webpack打包流程及一个例子
  • 2 设计模式原则之里约替换原则
  • 新华三H3CNE网络工程师认证—生成树协议
  • LeetCode:98. 验证二叉搜索树
  • 【Swift】类型标注、类型安全和类型推断
  • 【C++】友元成员
  • 给定一个数查找所在区间或者查找所有重叠区间的算法总结
  • Mac配置maven环境及在IDEA中配置Maven
  • @Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)
  • 商用密码产品认证名录说明
  • C++在实际项目中的应用第二节:C++与区块链
  • oracle初始化参数
  • Flutter:AnimatedBuilder自定义显示动画
  • mac-mini的时间机器,数据备份到alist 中的网盘
  • 山东春季高考-C语言-综合应用题