struct TreeNode* helper(struct TreeNode* root, int o1, int o2){
if(root == NULL || root->val == o1 || root->val == o2)
return root; // 找到空结点,或者找到要目标值时返回当前子树的根结点
struct TreeNode* p1 = helper(root->left, o1, o2); //先在左子树找
struct TreeNode* p2 = helper(root->right, o1, o2); //再在右子树找
if(p1 == NULL) //递归左子树结果为空,表示两数都在右子树
return p2;
if(p2 == NULL) //递归右子树结果为空,表示两数都在左子树
return p1;
return root; //左子树右子树递归结果都不空时,表示一个在左,一个在右,返回当前根结点
}
int lowestCommonAncestor(struct TreeNode* root, int o1, int o2 ) {
int ret = 0;
ret = helper(root, o1,o2)->val;
return ret;
}