剑指offer68-I.二叉搜索树的最近公共祖先

news2024/11/26 13:48:12

 把p的所有祖先找出来,把q的所有祖先找出来,因为是是搜索树,找出来的祖先都是排好序的,所以可以把找出来的祖先从后面往前面遍历,第一个相同的值的数就是最近的公共祖先,这是我一开始的想法,但是它最后报错了

 它的意思是后面没有元素?不知道,看了题解,题解是从前往后比,因为他们前面的祖先都是一样的,所以他们最近的公共祖先就是最后一个相同的值的节点。

class Solution {
    
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        List<TreeNode> pathp = getPath(root, p);
        List<TreeNode> pathq = getPath(root, q);
        TreeNode ancestor = null;
        for( int i = 0; i<pathp.size() && i<pathq.size(); i++ ){
            if(pathp.get(i) == pathq.get(i)){
                ancestor = pathp.get(i);
            }else{
                break;
            }
        }
        return ancestor;
    }
    private  List<TreeNode> getPath(TreeNode root, TreeNode target){
      List<TreeNode> path = new LinkedList<TreeNode>();
      while(root.val != target.val){
          path.add(root);
          if(target.val > root.val){
              root = root.right;
          }else if(target.val < root.val){
              root = root.left;
          }
      }
      path.add(root);
      return path;
    }
}

找出祖先的办法就是从根节点往下找,如果这个目标节点小于根节点说明,目标节点在根节点的左子树,然后再把根节点移到左子树的根节点上,右子树同理,把这些都放到一个List里面,最后返回这个List,比的话就是从前面往后面比因为他们前面都是一样的所以只要返回最后一个相同的就行,还要注意的就是List里面放TreeNode而不是Integer因为最后返回的是Treenode,但是为什么没有.val却输出了值,应该是重写了toString方法,我也不太明白。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/750165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(六)人工智能应用--深度学习原理与实战--理解张量与运算图

Tensorflow名称中的Tensor即张量&#xff0c;不仅仅是Tensorflow&#xff0c;几乎所有的深度学习平台都以张量为基本的数据结构。简单来说&#xff0c;张量就是多维数组&#xff0c;本质上是一种数据容器&#xff0c;它可以有任意维度&#xff0c;比如矩阵就是二维张量(二维数组…

数字图像处理【11】OpenCV-Canny边缘提取到FindContours轮廓发现

本章主要介绍图像处理中一个比较基础的操作&#xff1a;Canny边缘发现、轮廓发现 和 绘制轮廓。概念不难&#xff0c;主要是结合OpenCV 4.5的API相关操作&#xff0c;为往下 "基于距离变换的分水岭图像分割" 做知识储备。 Canny边缘检测 在讲述轮廓之前&#xff0c;…

数字孪生,建设智慧城市的新型“加速器”

城市是什么&#xff1f; 是现代文明与生态的联结&#xff0c;是自然与人友好栖息的空间&#xff0c;是运转复杂庞大的系统。 今天&#xff0c;中国的城市在历经十余年的“智慧城市”建设后已经被赋予了数智融合的全新解读。随着近年来5G、云计算、人工智能爆发式能量增长&#…

常见的bug---4、在DataGrip上跑本地模式报return 2异常

文章目录 问题描述原因分析&#xff1a;解决方案&#xff1a; 问题描述 FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 在DataGrip上设置了Hive的本地模式。虽然可以建表、但是无法对表进行插入数据 原因分析&#xff1a; 在插…

深入理解张量维度的真正含义

在人工智能领域&#xff0c;比如深度学习&#xff0c;机器学习&#xff0c;张量这一概念被频繁使用。虽然网上有很多关于张量的文章&#xff0c;但基本都是废话太多&#xff0c;而且复制粘贴说不到重点。 今天我就来讲解一下张量维度的真正含义。 首先. 张量并不是一个简单多…

STM32F103驱动VL53L0X激光测距模块

STM32F103驱动VL53L0X激光测距模块 简介引脚定义STM32F103ZET6开发板与VL53L0X模块接线测试代码实验结果 简介 TOF 是飞行时间&#xff08;Tlme of Flight&#xff09;技术的缩写&#xff0c;即传感器发出经过调制的近红外光&#xff0c;遇到物体后反射&#xff0c;传感器通过…

bug:file name too long文件名超出系统最大限制

各操作系统支持最长的文件和目录名称长度&#xff08;Linux、Win、Mac&#xff09; 今天开发需求的时候发现无法新建文件&#xff0c;提示file name too lang&#xff0c;于是翻阅和查询了一些资料&#xff0c;发现不同操作系统下文件名和目录名最长的长度不同。 操作系统文件名…

游戏如何应对虚拟定位问题

在游戏系统设计中&#xff0c;排行榜这一设计可谓是十分巧妙。它可以充分调动玩家的“胜负欲”&#xff0c;给予玩家前进的目标及动力&#xff0c;满足玩家的心理需求。 排行榜的设计使用范围广&#xff0c;对游戏留存、付费等指标提升效果出众&#xff0c;在不少游戏中都可以…

玩机搞机---某些安卓定制机解除系统安装限制的思路与分析过程

定制机的意义不多做解释&#xff0c;懂的人都明白. 在一些定制机中会限制用户安装app。当你使用第三方工具或者adb指令安卓app是他会提示de xxx.apk. autostarter is not auth,install failed!等等类似的提示&#xff0c;在解决某些定制系统中类似问题的过程中&#xff0c;基本…

Unity知识记录--项目升级URP

URP是指Unity的通用渲染管线&#xff0c;此处主要针对原有项目进行升级使用&#xff0c;但并不是所有的内容都可以直接通过升级完成&#xff0c;直接使用的Unity默认的shader通常可以完成直接升级&#xff0c;自己编写的shader通常需要重做。 首先我们先要安装这个Package&…

汇报方案设计方案规划方案资源下载

标题汇报方案设计方案规划方案资源下载https://wheart.cn/so/home?mdw&tag%E5%AE%89%E5%85%A8文章标签事业单位人事人才信息综合管理系统建设设计报价方案人事系统,人事人才,事业单位,工资系统,职称系统xx纪检委智慧监督平台建设方案汇报.docx建设方案,规划设计,汇报方案营…

程序员如何走向世界!

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

训练速度提升300倍,Niantic最新VPS视觉定位方案亮相

近年来在谷歌、Niantic等推动下&#xff0c;视觉定位对于AR应用的重要性越来越明显&#xff0c;尤其是在室内导航场景&#xff0c;定位精度可超越传统GPS方案。为了进一步提升视觉定位、深度视觉地图构建的准确性&#xff0c;Niantic Labs在CVPR 2023期间公布了ACE方案&#xf…

[MySql]表的增删查改

目录 前言: 1.插入数据 2.查询数据 2.1全列查询 2.2指定查询 2.3别名 2.4去重 2.5排序 2.6条件查询 2.7聚合查询 2.7.1group by语句 2.7.2havin语句 2.8联合查询 2.8.1内连接 2.8.2外连接 2.8.3自连接 2.8.4子查询 3.修改 4.删除 前言: 本次大多数使用…

【计算机视觉】MobileSAM论文解读:比SAM小60倍,比FastSAM快4倍,速度和效果双赢

文章目录 一、导读二、摘要三、Introduction三、Related work3.1 SAM&#xff1a;泛化和通用功能性3.2 ViT&#xff1a;轻巧高效 四、Mobile-Friendly SAM4.1 Background and Project Goal4.1.1 Background on SAM4.1.2 Project goal 4.2 Proposed Method4.2.1 耦合蒸馏4.2.2 从…

这个工具,补齐了 JMeter性能分析最后一公里短板

要说现在企业中主流的性能测试工具是什么&#xff1f; 答案肯定有 JMeter。 但是Jmeter 贵为测试工具界的“大牛”&#xff0c;在性能分析能力方面&#xff0c;还是有些欠缺的。 像Allen巨佬在高级性能实际教学的过程中就会经常遇到&#xff0c;学生截取一个监听器的图&…

使用传统的jdbc方式操作数据库

现在开发中有了mybatis、jdbcTemplate之后&#xff0c;已经很少公司会直接使用jdbc来连接数据库了&#xff0c;但是无论是mybatis还是jdbcTemplate&#xff0c;其底层都是jdbc。 这篇文章就主要介绍一下怎么通过jdbc来连接数据库。 在这之前&#xff0c;创建数据库jdbc&#xf…

JS相关介绍

1.JS引入&#xff1a; 内部&#xff1a;直接在html文件内部使用script标签调用 外部&#xff1a;另外新建JS文件&#xff0c;再在html文件中调用 2.输入输出&#xff1a; 输入&#xff1a;prompt(请输入您的姓名&#xff1a;) 输出&#xff1a;document.write(你们真是天才) 注…