NC117 合并二叉树 描述 已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。
数据范围:树上节点数量满足 0≤n≤500,树上节点的值一定在32位整型范围内。 进阶:空间复杂度 O(1) ,时间复杂度 O(n)
思路:递归,目前遇到的二叉树的题真的特别简单,几分钟就可以编写代码通过的简单。就是根节点和根节点合并,左右子节点合并后,成为合并后的根节点的左右子节点。就这么简单。
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param t1 TreeNode类
# @param t2 TreeNode类
# @return TreeNode类
#
class Solution:
def mergeTrees(self , t1: TreeNode, t2: TreeNode) -> TreeNode:
# write code here
if t1 == None:
return t2
elif t2 == None:
return t1
else:
t1.val += t2.val
t1.left = self.mergeTrees(t1.left,t2.left)
t1.right = self.mergeTrees(t1.right, t2.right)
return t1