当前位置: 首页 > article >正文

力扣 LeetCode 236. 二叉树的最近公共祖先(Day10:二叉树)

解题思路:

后序遍历

注意:

p和q其中一个就是它们的公共祖先的情况也考虑到了,假设q是公共祖先,遇到q就直接返回,相当于是下面一边为空,一边不为空的情况,返回不为空就一边即可

class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        return recur(root, p, q);
    }

    public TreeNode recur(TreeNode root, TreeNode p, TreeNode q) {
        if (root == null) return null;
        if (root == p || root == q) return root;

        TreeNode left = recur(root.left, p, q);
        TreeNode right = recur(root.right, p, q);
        if (left != null && right != null) return root;
        if (left == null && right != null) return right;
        if (left != null && right == null) return left;
        else return null;
    }
}


http://www.kler.cn/a/406869.html

相关文章:

  • 【UE5】在材质中计算模型在屏幕上的比例
  • Maven 依赖管理
  • 分层架构 IM 系统之架构演进
  • CSS布局学习2
  • Vue实训---1-创建Vue3项目
  • Win11 22H2/23H2系统11月可选更新KB5046732发布!
  • Swift从0开始学习 并发性 day4
  • 三次握手后的数据传输
  • Atcoder Beginner Contest 381
  • el-table :span-method 合并单元格(2.0)
  • 整站使用Vue(工程化)
  • C语言练级->##__VA_ARGS__(可变参数)的用法
  • uniapp中使用uni.$emit和uni.$on进行页面通讯传值
  • 3-测试go-redis+redsync实现分布式锁 --开源项目obtain_data测试
  • VRRP实现出口网关设备冗余备份
  • win10中使用ffmpeg和MediaMTX 推流rtsp视频
  • JAVA下载EXCEL,PDF文件之后无法打开,提示文件损坏
  • electron主进程和渲染进程之间的通信
  • 大数据学习18之Spark-SQL
  • STL关联式容器之multiset及multimap
  • Flutter:AnimatedSwitcher当子元素改变时,触发动画
  • Ansible使用简介和基础使用
  • 嵌入式 UI 开发的开源项目推荐
  • C#学习笔记——窗口停靠控件WeifenLuo.WinFormsUI.Docking使用-腾讯云开发者社区-腾讯云
  • vue3中父div设置display flex,2个子div重叠
  • 华为无线AC+AP组网实际应用小结