class Solution:
def mergeTrees(self , t1: TreeNode, t2: TreeNode) -> TreeNode:
if not t1: return t2
def dfs(x1, x2):
if not x1 or not x2: return
x1.val += x2.val
# 左子树
if x1.left and x2.left:
dfs(x1.left, x2.left)
elif not x1.left:
x1.left = x2.left
# 右子树
if x1.right and x2.right:
dfs(x1.right, x2.right)
elif not x1.right:
x1.right = x2.right
dfs(t1, t2)
return t1
Python 写法2(更优雅)
class Solution:
def mergeTrees(self , t1: TreeNode, t2: TreeNode) -> TreeNode:
def dfs(x1, x2):
if not x1 or not x2: return x1 or x2
x1.val += x2.val
x1.left = dfs(x1.left, x2.left)
x1.right = dfs(x1.right, x2.right)
return x1
return dfs(t1, t2)