此题可分为种情况:
1.p,q同侧,则左或右必有一个返回非null节点,此时将其返回
2.p,q异侧,此时左右均非null,此时返回根节点
3.左右均为null,则无
class Solution:
def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) -> TreeNode:
if not(root) or p == root or q == root:
return root
left = self.lowestCommonAncestor(root.left, p, q)
right = self.lowestCommonAncestor(root.right, p, q)
if not(left) and not(right):
return
if not(left) and right:
return right
if not(right) and left:
return left
return root