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

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

在这里插入图片描述

【题目】:236. 二叉树的最近公共祖先

终止条件:

  • 当root到叶节点终止
  • 当root是p或q终止(因为要求的是公共祖先,如果遍历到p,就算q还在p的下边,他们的公共祖先还是p)

这也说明了:如果返回的是nullptr,说明p、q不在这棵树中

返回情况:

  1. left == nullptr && right == nullptr:说明root的左右子树都没有p、q,直接返回nullptr
  2. left != nullptr && right == nullptr:说明p、q在root的左子树中,那么只需要返回left(因为前面只要遇到p或q就会终止,所以此时left就是p、q中相对上边的节点)
  3. right != nullptr && left == nullptr:说明p、q在root的右子树中,那么只要返回right即可(原因同上)
  4. right != nullptr && left != nullptr:说明p、q分散在root的左右子树中,此时root就是他们的最近公共祖先节点
class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        // 如果root是p 或 q 或 nullptr,就不需要再往下遍历了
        if(root == nullptr || root == p || root == q) {
            return root;
        }
        // 如果root不是p 或 q,就继续遍历root的左右子树
        TreeNode* left = lowestCommonAncestor(root->left, p, q);
        TreeNode* right = lowestCommonAncestor(root->right, p, q);
        
        if(left == nullptr && right == nullptr) {// 如果p 和 q都没找到,更不可能有公共祖先了
            return nullptr;
        }else if(left == nullptr) {// 如果左子树没有p也没有q,那就返回右子树
            return right;
        }else if(right == nullptr) {// 如果右子树没有p也没有q,那就返回左子树
            return left;
        }else {// 如果p和q分别在左右子树中,那就返回root
            return root;
        }
    }
};
  • 时间复杂度: O(n)
  • 空间复杂度: O(n)

相关文章:

  • 3.2 企业级AI Agent数据科学实战:从数据清洗到模型服务的全链路工业级方案
  • 前端性能优化实战:超大图片秒开方案——图像分割切片技术详解
  • AVA实战开源项目:课程答疑系统J(Vue+SpringBoot) 附源码
  • Flutter 的 Widget Key 提议大调整?深入聊一聊 Key 的作用
  • 切换镜像源(npm)
  • springboot和springframework版本依赖关系
  • 获取网站君子协议(robots协议)
  • python第七课
  • 【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析⑥】
  • 上位机学习之串口通信与温湿度项目实战
  • [高等数学]换元积分法
  • 【算法通关村 Day1】链表的增删改查及链表中双指针法应用
  • 讲讲Mysql主从复制原理与延迟
  • 代码随想录-训练营-day30
  • [转]Java面试近一个月的面试总结
  • 类加载机制及双亲委派模型
  • 使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)安装适配 Java 8 的 Maven
  • CF 137B.Permutation(Java 实现)
  • 审计费用差10倍?项目规模如何影响报价
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十五节】
  • 商务部就开展打击战略矿产走私出口专项行动应询答记者问
  • 金俊峰已跨区任上海金山区委副书记
  • 署名文章:从宏观调控看中国经济基本面
  • “海豚音”依旧互动更多,玛丽亚·凯莉本周来沪开唱
  • 中铁房地产24.7亿元竞得上海松江新城宅地,溢价率20.42%
  • 新买宝马竟是“维修车”,男子发视频维权被4S店索赔100万