给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

  1. 所有节点的值都是唯一的。
  2. pq 为不同节点且均存在于给定的二叉搜索树中。

示例:

输入1:

TreeNode

p=2
q=8

输出1:

6

解答:

def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
    if p.val>root.val and q.val>root.val:
        return self.lowestCommonAncestor(root.right,p,q)
    elif p.val<root.val and q.val<root.val:
        return self.lowestCommonAncestor(root.left,p,q)
    else:
        return root