# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None
classSolution: def__init__(self): self.ans = None
deflowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': defrecurse_tree(root): if root isNone: returnFalse left = recurse_tree(root.left) right = recurse_tree(root.right) mid = (root == p or root == q) if left + right + mid >= 2: self.ans = root return mid or left or right recurse_tree(root) return self.ans