题目链接:235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode)
一定要充分利用二叉搜索树是有序的这个特性
class Solution {
private:
TreeNode* traversal(TreeNode* cur, TreeNode* p, TreeNode* q){
if(cur == NULL) return cur;
if(cur->val > p->val && cur->val > q->val){
TreeNode* left = traversal(cur->left,p,q);
if(left != NULL){
return left;
}
}
if(cur->val < p->val && cur->val < q->val){
TreeNode* right = traversal(cur->left,p,q);
if(right != NULL){
return right;
}
}
return cur;
}
public:
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
return traversal(root,p,q);
}
};