题解 | #在二叉树中找到两个节点的最近公共祖先#

在二叉树中找到两个节点的最近公共祖先

https://www.nowcoder.com/practice/e0cc33a83afe4530bcec46eba3325116

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

/**
 * 
 * @param root TreeNode类 
 * @param o1 int整型 
 * @param o2 int整型 
 * @return int整型
 */

int lowestCommonAncestor(struct TreeNode* root, int o1, int o2)
{
    //注意这里都是按照递归的西写法来实现的,也就是说对应于每一次
    //递归而言都是根节点。
    if(root==NULL)
    {
        return -1;
    }
    if(root->val==o1||root->val==o2)
    {
        return root->val;
    }
    int left= lowestCommonAncestor(root->left,o1,o2);
    int right= lowestCommonAncestor(root->right, o1, o2);
    if(left==-1)
    {
        return right;
    }
    if(right==-1)
    {
        return left;
    }
    return root->val;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 11:12
点赞 评论 收藏
分享
07-09 20:50
门头沟学院 Java
码农索隆:1.教育背景和荣誉证书合二为一。 2.获奖项目理一遍,你做了什么,对你求职的岗位有什么帮助,没有就删掉。 3.技能特长和教育背景交换位置。 4.技能特长写的太差,上网上找简历参考。都不用问你别的,一个redis就能把你问住,写写你具体会redis哪些方面的知识。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务