LeetCode 1123. 最深叶节点的最近公共祖先(递归比较子树高度)

1. 题目

给你一个有根节点的二叉树,找到它最深叶节点的最近公共祖先。

回想一下:

  • 叶节点 是二叉树中没有子节点的节点
  • 树的根节点的 深度 为 0,如果某一节点的深度为 d,那它的子节点的深度就是 d+1
  • 如果我们假定 A 是一组节点 S 的 最近公共祖先,S 中的每个节点都在以 A 为根节点的子树中,且 A 的深度达到此条件下可能的最大值
示例 1:
输入:root = [1,2,3]
输出:[1,2,3]示例 2:
输入:root = [1,2,3,4]
输出:[4]示例 3:
输入:root = [1,2,3,4,5]
输出:[2,4,5]提示:
给你的树中将有 11000 个节点。
树中每个节点的值都在 11000 之间。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-deepest-leaves
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:LeetCode 865. 具有所有最深结点的最小子树(递归)

  • 求左右子树的高度,相等返回 root
  • 不等,递归判断高的子树一侧
class Solution {
public:TreeNode* lcaDeepestLeaves(TreeNode* root) {if(!root)return NULL;int hl = height(root->left);int hr = height(root->right);if(hl == hr)return root;else if(hl < hr)return lcaDeepestLeaves(root->right);elsereturn lcaDeepestLeaves(root->left);}int height(TreeNode* root){if(!root)return 0;return 1+max(height(root->left),height(root->right));}
};

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

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

相关文章

万字综述:目标检测模型YOLOv1-v7深度解析

文&#xff5c;Rocky Ding源&#xff5c;WeThinkln大家好&#xff0c;我是Rocky。近年来YOLO系列层出不穷&#xff0c;更新不断&#xff0c;已经到v7版本。Rocky认为不能简单用版本高低来评判一个系列的效果好坏&#xff0c;YOLOv1-v7不同版本各有特色&#xff0c;在不同场景&a…

python手枪_Python入门,爬虫训练——枪械查询

一、效果图&#xff1a;二、怎么做到的&#xff1f; 1&#xff0c;首先安装requests、bs4. 这两个第三方模块。 我们按住winR 在弹出来的窗口上输入cmd&#xff0c;来到命令窗口&#xff0c;输入pip install requests、pip install bs4即可&#xff0c;网速慢的可以切换至国内源…

LeetCode 865. 具有所有最深结点的最小子树(递归)

1. 题目 给定一个根为 root 的二叉树&#xff0c;每个结点的深度是它到根的最短距离。 如果一个结点在整个树的任意结点之间具有最大的深度&#xff0c;则该结点是最深的。 一个结点的子树是该结点加上它的所有后代的集合。 返回能满足“以该结点为根的子树中包含所有最深的…

为什么python是解释型面向对象的语言_python为什么是面向对象的

Python虽然是解释型语言&#xff0c;但从设计之初就已经是一门面向对象的语言&#xff0c;对于Python来说一切皆为对象。正因为如此&#xff0c;在Python中创建一个类和对象是很容易的&#xff0c;当然如果习惯面向过程或者函数的写法也是可以的&#xff0c;Python并不做硬性的…

AI写剧本炸场戏剧节!DeepMind出品,马斯克看了直夸,网友看到接口悟了

文&#xff5c;羿阁 萧箫 发自 凹非寺源&#xff5c;量子位OpenAI的ChatGPT大火后&#xff0c;DeepMind终于也坐不住了&#xff01;这次&#xff0c;他们推出一款名为“Dramatron”的新AI&#xff0c;用上它人人都可以变身编剧或作家。只需给出一句话大纲&#xff0c;Dramatron…

程序员面试金典 - 面试题 08.14. 布尔运算(区间动态规划)

1. 题目 给定一个布尔表达式和一个期望的布尔结果 result&#xff0c;布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成。 实现一个函数&#xff0c;算出有几种可使该表达式得出 result 值的括号方法。 示例 1: 输入: s "1^0|0|1", r…

推荐优质的深度学习公众号

人工智能行业目前已接近饱和状态&#xff0c;如何从内卷中脱颖而出&#xff0c;除了极强的自律之外&#xff0c;系统性的学习方法也很重要。今天给大家推荐10个原创公众号&#xff0c;这些公众号定期会发些高质量原创&#xff0c;希望可以让你更高效的学习。小白学视觉哈工大博…

SQLServer安装挂起解决方法

出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。 具体步骤是&#xff1a; 1&#xff09;添加/删除程序中彻底删除sql server。 2&#xff09;将没有删除的sql server目录也删除掉。 …

程序员面试金典 - 面试题 17.06. 2出现的次数(找递推规律)

1. 题目 编写一个方法&#xff0c;计算从 0 到 n (含 n) 中数字 2 出现的次数。 示例: 输入: 25 输出: 9 解释: (2, 12, 20, 21, 22, 23, 24, 25)(注意 22 应该算作两次)提示&#xff1a; n < 10^9来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;…

python8个程序语言_所有程序员必知--2019年最流行的8种编程语言和框架

上图是您应该在2019年根据各种&#xff0c;统计和事实寻找的8种最佳编程语言和框架的列表。在技​​术不断进步的当代世界中&#xff0c;计算机无处不在。为计算机编写程序是当前IT市场上最关键的工作配置文件之一。 您是否想过还有比这更忙的任务&#xff1f;它正在选择合适的…

ChatGPT进入百度“弱智吧”后,疯了

文 | 兔子酱无论你玩不玩贴吧&#xff0c;“弱智吧”的大名很多人应该听说过。如今弱智吧的关注人数已经超过了200万。。。不得不说&#xff0c;能将这么多“弱智”聚在一起&#xff0c;“弱智吧”撑起了后百度贴吧时代的辉煌。。。来一起感受下“弱智吧”的日常&#xff1a;能…

打印网页时背景图片的问题

当我们打印一个网页时&#xff0c;默认情况下&#xff0c;网页的背景图片是不会被打印出来的 这与我们的打印代码无关&#xff0c;需要设置IE便可&#xff0c;如下图&#xff1a; 转载于:https://www.cnblogs.com/blodfox777/archive/2008/08/05/1260860.html

程序员面试金典 - 面试题 08.02. 迷路的机器人(DFS/动态规划)

文章目录1. 题目2. 解题2.1 DFS2.2 动态规划1. 题目 设想有个机器人坐在一个网格的左上角&#xff0c;网格 r 行 c 列。 机器人只能向下或向右移动&#xff0c;但不能走到一些被禁止的网格&#xff08;有障碍物&#xff09;。 设计一种算法&#xff0c;寻找机器人从左上角移动…

python数据分析开发环境_在MAC上搭建python数据分析开发环境

最近工作转型到数据开发领域&#xff0c;想在本地搭建一个数据开发环境。自己有三年python开发经验&#xff0c;马上想到使用numpy、scipy、sklearn、pandas搭建一套数据开发环境。 ubuntu的环境&#xff0c;百度中文章比较多&#xff0c;搭建起来非常顺利。MAC环境的资料比较少…

方向盘开极品飞车9很Hapyy

一直以来&#xff0c;总是找不到一款自己心爱的游戏&#xff0c;呵呵&#xff0c;弄到个方向盘&#xff0c;开极品很HI喔。。。 虽然现在没空去玩&#xff0c;只能把方向盘放在电脑的左边&#xff0c;没事的时候只能看看了&#xff0c;不过有个期盼可以玩一把的游戏也很不错呀&…

负样本为王,百篇论文概览负采样方法的前世今生

文&#xff5c;徐澜玲源&#xff5c;RUC AI Box目录1. 研究背景1.1 什么是负采样&#xff1f;1.2 为什么需要负采样&#xff1f;1.3 为什么需要高质量的负采样&#xff1f;2. 负采样方法分类梳理2.1 静态负采样2.2 强负例采样2.3 对抗式负采样2.4 基于图的负采样2.5 引入额外信…

程序员面试金典 - 面试题 17.25. 单词矩阵(Trie树+DFS回溯,hard)

1. 题目 给定一份单词的清单&#xff0c;设计一个算法&#xff0c;创建由字母组成的面积最大的矩形&#xff0c;其中每一行组成一个单词(自左向右)&#xff0c;每一列也组成一个单词(自上而下)。 不要求这些单词在清单里连续出现&#xff0c;但要求所有行等长&#xff0c;所有…

python mysql操作封装库_python封装mysq操作,进行数据库的增删改

python操作mysql进行封装&#xff0c;封装的好处我就不提了&#xff0c;以下是我做项目时的一个封装&#xff0c;大家可以根据实际需要进行自己的一个封装我封装的内容&#xff1a;1.数据库的配置文件2.获取数据配置文件的地址3.连接数据库的操作4.操作mysql的语句5.调用mysql的…

SQL2000数据库中删除“坏表”的方法

SQL2000数据库中删除“坏表”的方法在一些网站或者软件系统中&#xff0c;由于安全或者程序异常等问题&#xff0c;可能会在SQL Server 2000中造成一个异常问题&#xff1a;在企业管理器中打开数据库发现有一些“坏表”&#xff0c;即无法使用&#xff0c;也无法正常删除。其原…

偶然当程序员却拿下图灵奖,超算榜单之父讲述人生开挂经历

文&#xff5c;衡宇 发自 凹非寺源&#xff5c;量子位40年前偶然走上程序员道路的Jack Dongarra&#xff0c;是今年的图灵奖得主。奖项设立机构美国计算机协会&#xff08;ACM&#xff09;表示&#xff0c;Dongarra的算法与软件成果推动了高性能计算&#xff08;HPC&#xff09…