因为是二叉搜索树,所以只需比较 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