题解 | #在二叉树中找到两个节点的最近公共祖先#
在二叉树中找到两个节点的最近公共祖先
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;
}
查看1道真题和解析

