LeetCode-236: 二叉树的最近公共祖先
题目描述:
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
示例 1:
输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1
输出:3
解释:节点 5 和节点 1 的最近公共祖先是节点 3 。
示例 2:
输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4
输出:5
解释:节点 5 和节点 4 的最近公共祖先是节点 5 。因为根据定义最近公共祖先节点可以为节点本身。
示例 3:
输入:root = [1,2], p = 1, q = 2
输出:1
思路分析;
具体思路分析可以看下以下的文章链接,讲得非常好:
https://mp.weixin.qq.com/s/9RKzBcr3I592spAsuMH45g
java实现:
class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root==null){return null;}if(root==p || root==q){return root;}TreeNode left=lowestCommonAncestor(root.left,p,q);TreeNode right=lowestCommonAncestor(root.right,p,q);if(left!=null && right!=null){return root;}if(left==null && right==null){return null;}return left==null? right:left;}
}
LeetCode-236: 二叉树的最近公共祖先相关推荐
- 力扣(LeetCode)236. 二叉树的最近公共祖先(C语言)
一.环境说明 本文是 LeetCode 236. 二叉树的最近公共祖先,使用c语言实现. 递归. 测试环境:Visual Studio 2019. 二.代码展示 精简代码: struct TreeNo ...
- leetcode 236. 二叉树的最近公共祖先 递归解法 c语言
如题: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先.百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x, 满足 x 是 p.q ...
- LeetCode 236. 二叉树的最近公共祖先
文章目录 解法1:保存祖先节点+逐个判断 解法2:深度优先遍历 解法3:记录祖先节点 https://leetcode-cn.com/problems/lowest-common-ancestor-o ...
- 最近公共祖先_[LeetCode] 236. 二叉树的最近公共祖先
题目链接: https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree 难度:中等 通过率:57.2% 题目描述: ...
- leetcode 236. 二叉树的最近公共祖先LCA(后序遍历,回溯)
LCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先. 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先.百度百科 ...
- Leetcode 236.二叉树的最近公共祖先
Time: 20190907 Type: Medium 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p. ...
- [leetcode]236.二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表示为一个节点 x,满足 x 是 p.q 的祖先且 ...
- leetcode 236. 二叉树的最近公共祖先 思考分析
目录 题目 思考分析 改进 本文章代码思路来源于公众号[代码随想录] 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个 ...
- LeetCode 236. 二叉树的最近公共祖先(递归)
题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q ...
- 【LeetCode】【HOT】236. 二叉树的最近公共祖先(递归)
[LeetCode][HOT]236. 二叉树的最近公共祖先 文章目录 [LeetCode][HOT]236. 二叉树的最近公共祖先 package hot;class TreeNode{int va ...
最新文章
- SD--va01的屏幕增强
- WPF 命中测试HitTest
- 亚马逊全面发力AI,推机器学习托管服务、四项新工具,还有AI硬件
- Linux 下进入含空格的目录(以及文件夹名开头为`(`)
- Eclipse is running in a JRE, but a JDK is requi...
- Python操作DB2数据库
- 问道虚拟机服务器地址,问道1.60.0905虚拟机手工启动服务端+配套客户端+启动教程+充值注册软件+配套工具...
- 常见的80道面试算法题
- 码栈——让一切变得自动化
- python基础函数应用_python基础之函数的应用
- win10应用商店不见了
- 363、Java中级18 -【JDBC - 增、删、改】 2020.06.28
- [附源码]Python计算机毕业设计调查问卷及调查数据统计系统
- Unity3d+moba+草丛视野
- 大牛教你怎么学习Java多进程,下载量瞬秒百万
- .NET USEING 原理
- ### Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘user_id‘ cannot be null
- Linux curses库使用
- Oracle之TO_DATE用法详解
- 域服务器 文件服务器,域服务器文件服务器
热门文章
- Activity切换动画---点击哪里从哪放大
- zookeeper安装和使用
- windows下常用linux对应工具
- ECMAscript6(ES6)新特性语法总结(一)
- 2016/11/07 线程的创建和启动
- 自制反汇编逆向分析工具 迭代第六版本 (一)
- pdf转换成word教程
- 构建高性能.NET应用之配置高可用IIS服务器-第五篇 IIS常见问题之:工作进程回收机制(中)...
- 算法导论-线性时间排序习题解
- java http 返回值_java发送http请求,无需等待返回结果