因为是二叉搜索树,所以只需比较 p, q, root.val 的值即可
若 p,q 均大于 root.val,则公共祖先在 root 的右子树上
若 p,q 均小于 root.val,则公共祖先在 root 的左子树上
若不满足上述条件,则 root 为公共祖先

代码如下:

class Solution:
    def lowestCommonAncestor(self , root: TreeNode, p: int, q: int) -> int:
        if root.val < p and root.val < q:
            return self.lowestCommonAncestor(root.right, p, q)
        
        if root.val > p and root.val > q:
            return self.lowestCommonAncestor(root.left, p, q)
        
        return root.val