码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2021-04-09 13:25:04      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:img   返回   roo   节点   tor   alt   ++   auto   否则   

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

题目:

技术图片

思路:

后续遍历+DFS:具体思路参照了题解中的解析

技术图片

代码:

class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        //先判断根节点本身是不公共点,如果是公共点,就是公共祖先
        if(!root || root == p || root == q) return root; 
        //否则,判断左支树返回值
        auto left = lowestCommonAncestor(root->left, p, q);
        //判断右支树返回值。
        auto right = lowestCommonAncestor(root->right, p, q);
        //如果左子树返回值为空,那就返回右子树返回值,因为答案肯定存在
        if(!left) return right;
        if(!right) return left;

        //如果都存在,则返回根节点,为公共祖先
        return root;
    }
};

Rank:

技术图片

Tips:

就这,此题做的很敷衍,今天学习兴致不高。感觉差点意思,还是要再总结一下二叉树的基础知识点,然后再猛刷题。

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

标签:img   返回   roo   节点   tor   alt   ++   auto   否则   

原文地址:https://www.cnblogs.com/lzyrookie/p/14635329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!