leetcode1123. 最深叶节点的最近公共祖先(dfs)
给你一个有根节点的二叉树,找到它最深的叶节点的最近公共祖先。
回想一下:
叶节点 是二叉树中没有子节点的节点
树的根节点的 深度 为 0,如果某一节点的深度为 d,那它的子节点的深度就是 d+1
如果我们假定 A 是一组节点 S 的 最近公共祖先,S 中的每个节点都在以 A 为根节点的子树中,且 A 的深度达到此条件下可能的最大值。
示例 1:
输入:root = [1,2,3]
输出:[1,2,3]
解释:
最深的叶子是值为 2 和 3 的节点。
这些叶子的最近共同祖先是值为 1 的节点。
返回的答案为序列化的 TreeNode 对象(不是数组)"[1,2,3]" 。
代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {int maxLen=Integer.MIN_VALUE;TreeNode maxRoot;public TreeNode lcaDeepestLeaves(TreeNode root) {po(root,0);return maxRoot;}public int po(TreeNode root,int level) {if(root==null) return level;//返回深度int l=po(root.left,level+1);int r=po(root.right,level+1);if(l==r&&l>=maxLen) {//如果左右子树都存在相等的最深叶子节点maxLen=l;maxRoot=root;}return Math.max(l,r);//返回最深叶子节点的高度}
}
leetcode1123. 最深叶节点的最近公共祖先(dfs)相关推荐
- LeetCode 1123. 最深叶节点的最近公共祖先(递归比较子树高度)
1. 题目 给你一个有根节点的二叉树,找到它最深的叶节点的最近公共祖先. 回想一下: 叶节点 是二叉树中没有子节点的节点 树的根节点的 深度 为 0,如果某一节点的深度为 d,那它的子节点的深度就是 ...
- 二叉树如何求两个叶节点的最近公共祖先--re
二叉搜索树原理: 二叉搜索树是排序过的 ,位于左子树的结点都比父结点小,位于右子树的结点都比父结点大,我们只需从根节点开始和两个输入的结点进行比较,如果当前节点的值比两个结点的值都大,那么最低的公共祖 ...
- 二叉树——求两个节点的最近公共祖先
题目 给定一颗二叉树的头结点,和这颗二叉树中2个节点n1和n2,求这两个节点的最近公共祖先: 思路 利用后序遍历实现: 对于当前节点cur,如果节点为null或者等于n1或n2中的一个,则直接返回cu ...
- 两节点的最小公共祖先LCA
一.二叉搜索树中两节点的最小公共祖先: 最初级的题目,在一颗二叉搜索树中寻找两节点的最小公共祖先.根据二叉搜索树的特征,从根节点开始查找,若两节点的val值都小于当前节点,则他们的最小公共祖先就去左子 ...
- 牛客题霸 [ 在二叉树中找到两个节点的最近公共祖先] C++题解/答案
牛客题霸 [ 在二叉树中找到两个节点的最近公共祖先] C++题解/答案 题目描述 给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点. 题解: 我们想想最 ...
- 在二叉树中找到两个节点的最近公共祖先(C++)
在二叉树中找到两个节点的最近公共祖先 描述 给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点. 数据范围:树上节点数满足1 ...
- 数据结构-寻找二叉树两节点的最近公共祖先(Java)
寻找最近公共祖先 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表示为一个节点 x,满足 ...
- 由浅入深:求给定两个树节点的最低公共祖先(二叉树、普通树结构)JAVA实现
最近看了一道面试题目,觉得很有意思,而且常常被问到,今天综合归纳了一下这道题目,并给出了各种变形题目,附上JAVA版的程序解答. 题目是这样的:寻找二叉树的最低公共祖先?(其中隐含着一个盲点:树是什么 ...
- 2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p
2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表示为一个节点 x,满足 x ...
最新文章
- 硅片行业:过剩背景下的寡头市场
- linux学习笔记 第七篇 (samba(一))(iscsi)
- 【Android 异步操作】线程池 ( 线程池使用示例 | 自定义线程池使用流程 | 自定义任务拒绝处理策略 | 完整代码示例 )
- 基于Salmon的转录组定量流程
- HBase+Phoenix整合入门--集群搭建
- 【转】ASPX和HTML获取系统根目录的路径
- python代码导出_代码生成 – Python生成Python
- oracle状态blocked,oracle 监听状态为BLOCKED
- python有趣的案例_Python有趣的小案例
- 使用C#开发ActiveX控件
- 翘首以盼Windows 8
- 语法高亮_Qt官方示例语法高亮器
- 微信小程序Axure元件库(2021最新版)
- BCDboot.exe
- selenium下载图片
- Python:快速裁剪PDF页面
- Vue.js:事件修饰符stop,once,prevent的使用
- android 开机自动启动服务,Android实现开机自动启动Service或app的方法
- 【每日英文】2021.8.5
- PDF转JPG免费软件有什么?这三个软件值得收藏