剑指offer 68:二叉搜索树的最近公共祖先

在这里插入图片描述
思路
从上往下遍历,只要root在p,q之间就说明root是最近公共祖先。

class Solution {
    
    
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
    
    
        while(root) {
    
    
            if (root->val > p->val && root->val > q->val) {
    
    
                root = root->left;
            } else if (root->val < p->val && root->val < q->val) {
    
    
                root = root->right;
            } else return root;
        }
        return NULL;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_44537258/article/details/114098487