原题目:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian-lcof/
思路:
注意二叉搜索树的性质
root->val等于其中一个,那么root就是要返回的值,
root->val比两个都要大,就在左子树里面找
root->val比两个都要小,就在右子树里面找
如果root->val在两者之间,这个节点就是最小祖先
代码:
class Solution {
public:
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if (root ->val == p->val || root->val == q->val) return root;
if(root->val > q->val && root->val > p->val)
return lowestCommonAncestor(root->left,p,q);
if (root->val < q->val && root->val < p->val)
return lowestCommonAncestor(root->right,p,q);
return root;
}
};