给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]

采用递归算法,如下

class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root==null || root==p || root==q)return root;TreeNode l=lowestCommonAncestor(root.left,p,q);TreeNode r=lowestCommonAncestor(root.right,p,q);if(l==null)return r;if(r==null)return l;return root;}
}

示例:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 6, q = 4
(蓝色箭头代表孩子,橙色代码返回数值 n代表空)

剑指offer01--二叉树的最近公共祖先相关推荐

  1. 【LeetCode】剑指 Offer 68 - II. 二叉树的最近公共祖先

    [LeetCode]剑指 Offer 68 - II. 二叉树的最近公共祖先 文章目录 [LeetCode]剑指 Offer 68 - II. 二叉树的最近公共祖先 一.DFS 一.DFS 祖先的定义 ...

  2. LeetCode二叉树系列——236.二叉树的最近公共祖先

    一.题目描述: 236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表 ...

  3. leetcode 236. 二叉树的最近公共祖先 递归解法 c语言

    如题: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先.百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x, 满足 x 是 p.q ...

  4. 二叉树题目----6 二叉树的最近公共祖先 AND 二叉树搜索树转换成排序双向链表

    二叉树的最近公共祖先 思路 在左.右子树中分别查找是否包含p或q: 如果以下两种情况(左子树包含p,右子树包含q/左子树包含q,右子树包含p),那么此时的根节点就是最近公共祖先 如果左子树包含p和q, ...

  5. LeetCode 1676. 二叉树的最近公共祖先 IV

    文章目录 1. 题目 2. 解题 1. 题目 给定一棵二叉树的根节点 root 和 TreeNode 类对象的数组(列表) nodes,返回 nodes 中所有节点的最近公共祖先(LCA). 数组(列 ...

  6. 最近公共祖先_leetcode No.236 二叉树的最近公共祖先

    承接二叉搜索树的最近公共祖先. 题目链接: 二叉树的最近公共祖先 - 力扣(LeetCode)​leetcode-cn.com 题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百 ...

  7. 【LeetCode】【HOT】236. 二叉树的最近公共祖先(递归)

    [LeetCode][HOT]236. 二叉树的最近公共祖先 文章目录 [LeetCode][HOT]236. 二叉树的最近公共祖先 package hot;class TreeNode{int va ...

  8. 奇安信集团笔试题:二叉树的最近公共祖先(leetcode236),杀死进程(leetcode582)...

    1. 二叉树最近公共祖先 奇安信集团 2020校招 服务端开发-应用开发方向在线考试 编程题|20分2/2 寻祖问宗 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C+ ...

  9. 二叉搜索树的公共祖先,二叉树的最近公共祖先

    二叉树的定义: # Definition for a binary tree node. class TreeNode:def __init__(self, x):self.val = xself.l ...

最新文章

  1. 乔布斯 18 岁求职信拍卖价 22.24 万美元,值吗?
  2. 网络工程师应该掌握的50个路由器知识要点
  3. Java实现均摊_Java均摊复杂度和防止复杂度的震荡原理分析
  4. The maximum string content length quota (8192) has been exceeded while reading XML data
  5. Spring Boot 中使用 Hikari,给我整不会了
  6. uni-app运行编译报错
  7. linux 开机自动运行命令_如何在Linux终端同时运行多个Linux命令
  8. EMS --Web Development Kit开发
  9. 华为怎么删除自带的音乐_华为手机独有的这个模式,让睡觉更舒畅
  10. 【前端进阶之路】内存基本知识
  11. 关于有默认值的字段在用EF做插入操作时的思考(续)
  12. Entry输入框实现登录用户名冷却验证小案例(Tkinter)
  13. js创建a标签下载文件
  14. android模拟器 分辨率,Android模拟器各个皮肤的分辨率
  15. 头指针、头节点、首元结点——《王道数据结构》
  16. 数据库一对一、一对多、多对多关系
  17. aop:aspectj-autoproxy的作用
  18. 将vscode打造成无敌的IDE(1)初步探索vscode,解放生产力
  19. STM32进入Standby模式并唤醒
  20. 计算机故障维修要遵循什么原则,计算机故障排除原则和方法;

热门文章

  1. 为什‮多很了学么‬营销‮识知‬依然赚不到钱?
  2. 学校如何把表格里的成绩,让学生以二维码的方式去扫描查询呢?
  3. 题解 CF1391B 【Fix You】
  4. sql多语句表值函数_构造一个特殊的多语句表函数来检查SQL Server的运行状况
  5. sql计数_SQL计数区分功能概述
  6. [工具向]__关于androidstudio工具使用过程中学习到的一些知识点简记
  7. ----初读《构建之法》的疑虑
  8. Thinkphp3.2.3的主从分离事务问题(坑!!!)
  9. j2ee 上传下载 小记
  10. linux 上 Mysql 快速链接 去掉DNS解析