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

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

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;
}

全部评论

相关推荐

03-18 09:45
莆田学院 golang
牛客749342647号:佬,你这个简历模板是哪个,好好看
点赞 评论 收藏
分享
韵不凡:软件开发的工作需要博士吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务