每日一题~二叉树的最近公共祖先

news/2024/7/7 19:19:08

题目连接:236. 二叉树的最近公共祖先 - 力扣(LeetCode)

题目描述:

思路分析:

由题可知,我们需要找到 p 和 q 两个二叉树的最近公共祖先节点,首先我们分析一下,这个最近公共祖先节点的可能情况。1、这个最近公共祖先节点既不是 p 也不是 q,简单来说,p 和 q 一个是某个节点的左子树,另一个是该节点的右子树,也就是示例一的情况。2、这个最近公共祖先节点是 p 或者 q,也就是说,p 是 q 的父节点或者 q 是 p 的父节点,也就是示例二的情况。接下来我们详细分析一下编写代码的过程

1、判断 root、p、q 中是否存在空节点,如果存在空节点,则直接返回 null

2、判断 root 是否等于 p 或者 q,如果相等则直接返回 root,表示已经找到了一个节点

3、从左子树和右子树中接着寻找另一个节点

4、如果同时找到了两个树,那么说明这两个树是从同一个节点分化出来的,则直接返回 root;如果说只有找到了一个树,那么说明另一个树是这个树的子树,则直接返回找到的那个结点就可以,原因可以看下面的图片

代码示例:

lass Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if(root == null || p == null || q == null) return null;
        if(root == p || root == q) return root;
        TreeNode retLeft = lowestCommonAncestor(root.left,p,q);
        TreeNode retRight = lowestCommonAncestor(root.right,p,q);
        if(retLeft != null && retRight != null) {
            return root;
        }else if(retLeft != null) {
            return retLeft;
        }else {
            return retRight;
        }
    }
}


http://lihuaxi.xjx100.cn/news/1556107.html

相关文章

面试抱佛脚

App启动优化 (17条消息) Android 性能优化(一) —— 启动优化提升60%_凶残的程序员的博客-CSDN博客_android 启动优化 Android App优化之提升你的App启动速度之实例挑战 - 简书 Android性能优化--启动优化 - 简书 Android启动页优化,去黑屏实现秒启动 - 简书 (1…

3D动画制作和渲染需要什么样的硬件规格?

动画是艺术与技术的令人兴奋的融合,为无限的创造力提供了广阔的画布。为了将创意愿景变为现实,动画师需要适合其工艺的强大计算资源。每个动画项目都有不同的硬件需求,无论是制作简单的 2D 动画还是构建复杂的 3D 世界。因此,有抱…

如何在云服务器上成功安装MongoDB数据库并用Python连接(问题及解决方法)

最近购买了1台腾讯云轻量服务器做测试,想在上面安装MongoDB数据库。但安装过程并不顺利,遇到了几个问题。本文记录一下安装过程及遇到的问题和解决方法。 一、软件下载地址: 1.直接打开MongoDB官网:https://www.mongodb.com/ …

1688全店商品采集教程,1688店铺所有商品接口(详解1688店铺所有商品数据采集步骤方法和代码示例)

随着电商行业的快速发展,1688已成为国内的电商平台之一,拥有着海量的商品资源。对于一些需要大量商品数据的商家或者需求方来说,1688全店采集是非常必要的。本文将详细介绍1688全店采集的步骤和技巧,帮助大家更好地完成数据采集任…

leetcode100相同的树,C语言时间击败百分之百

最近“复习”到了二叉树,从leetcode找题做,发现相同的树 总之都是answer-coper 我就想先序迭代地dfs掉这道题,其他的答案上都有总结不赘述 下面主打我抄我自己 /*** Definition for a binary tree node.* struct TreeNode {* int val;*…

天视通等小众冷门摄像机接入安防监控系统EasyCVR平台的常见兼容问题及解决方法

众所周知,视频监控系统EasyCVR安防视频综合管理平台支持多类型设备、多协议方式接入,包括市场主流标准协议国标GB28181、RTMP、RTSP/Onvif协议等,以及厂家私有协议,如海康SDK、大华SDK、海康Ehome等。平台可兼容市面上绝大多数品牌…

小区物业管理缴费报修活动报名商城小程序开源版开发

小区物业管理缴费报修活动报名商城小程序开源版开发 以下是小区物业管理缴费报修活动报名商城小程序开源版的功能列表: 用户注册和登录小区信息展示(包括小区简介、周边设施等)物业公告显示和发布功能小区物业费用查询和缴费功能基础设施报…

Jmeter接口自动化和Python接口自动化,如何选择?

选择Jmeter或Python进行接口自动化测试取决于您的具体需求和环境。以下是一些可以考虑的因素: 1. 语言熟悉度:如果您对Java更熟悉,那么Jmeter可能是更好的选择。而如果您的团队或个人对Python更熟悉,那么Python可能是更好的选择。…