思路
递归,以树1作为基准,如果两棵树的当前节点都存在,那么把树2的该节点加到数1,再递归的对树1、树2的左子树和右子树进行操作,并分别置为树1的左右子树;如果有一个树的当前节点不存在,则返回另一棵树的对应节点。
class Solution(object):
def mergeTrees(self, t1, t2):
"""
:type t1: TreeNode
:type t2: TreeNode
:rtype: TreeNode
"""
#节点都存在的情况
if t1 and t2:
t1.val += t2.val
#递归的对两棵树的节点进行操作
t1.left = self.mergeTrees(t1.left, t2.left)
t1.right = self.mergeTrees(t1.right, t2.right)
#节点不存在的情况
elif t1 and not t2:
return t1
else:
return t2
return t1