[leetcode] 68.二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 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
class Solution:def lowestCommonAncestor(self,root:'TreeNode',p:'TreeNode',q:'TreeNode')->'TreeNode':if not root or root == p or root == q:return rootleft = self.lowestCommonAncestor(root.left)right = self.lowestCommonAncestor(root.right)if not left and not right:return Noneelif left and not right:return leftelif right and not left:return rightreturn root
[leetcode] 68.二叉树的最近公共祖先相关推荐
- 力扣(LeetCode)236. 二叉树的最近公共祖先(C语言)
一.环境说明 本文是 LeetCode 236. 二叉树的最近公共祖先,使用c语言实现. 递归. 测试环境:Visual Studio 2019. 二.代码展示 精简代码: struct TreeNo ...
- LeetCode 1676. 二叉树的最近公共祖先 IV
文章目录 1. 题目 2. 解题 1. 题目 给定一棵二叉树的根节点 root 和 TreeNode 类对象的数组(列表) nodes,返回 nodes 中所有节点的最近公共祖先(LCA). 数组(列 ...
- 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 1650. 二叉树的最近公共祖先 III(哈希)
文章目录 1. 题目 2. 解题 1. 题目 给定一棵二叉树中的两个节点 p 和 q,返回它们的最近公共祖先节点(LCA). 每个节点都包含其父节点的引用(指针).Node 的定义如下: class ...
- LeetCode 1644. 二叉树的最近公共祖先 II
文章目录 1. 题目 2. 解题 1. 题目 给定一棵二叉树的根节点 root,返回给定节点 p 和 q 的最近公共祖先(LCA)节点. 如果 p 或 q 之一不存在于该二叉树中,返回 null. 树 ...
- leetcode 236. 二叉树的最近公共祖先LCA(后序遍历,回溯)
LCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先. 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先.百度百科 ...
- Leetcode 236.二叉树的最近公共祖先
Time: 20190907 Type: Medium 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p. ...
最新文章
- qt LNK2019 无法解析的外部符号
- MySQL datetime类型字段的毫秒四舍五入
- 作业1--求100内的奇数。
- PAT甲级1125 Chain the Ropes:[C++题解]贪心、优先队列、合并果子
- 我的奔腾B50 MT豪华版 典雅灰 – 验车篇
- mysql进阶,03-事务2-多个客户端一起操作时的情况
- Failed to execute request because the App-Domain could not be created
- hpux系统启动中被某个服务hang住的解决办法
- java学习软件_刚学习java,用哪些学习软件比较好?
- python做数据挖掘_python 数据挖掘
- 微服务的战争:按什么维度拆分服务
- 前端后端程序员必备的Linux基础知识
- 痞子衡嵌入式:盘点国内Cortex-M内核MCU厂商高性能产品
- Java 使用jsoup下载网页内容到本地
- 这些SQL调优小技巧,你学废了吗?
- html点击展开盒子变大,JS实现点击按钮控制Div变宽、增高及调整背景色的方法
- 无与伦比的工业设计 iPhone 4详细评测
- JAVA电商秒杀实战(三)
- linux下c的串口收发
- Android程序简历这样写,拿到offer的几率提升80%