- 题目要求:
-
思路:
- 修改Tree1,把Tree1和Tree2节点的和直接赋给Tree1
- 递归
- 判断,如果t1和t2都不为空,那么把t2与t1的和赋给t1,然后递归调用当前的函数,把t1和t2的左节点作为函数的参数,再把递归调用的整个值赋给t1的左节点(见代码),右节点也是一样
- 最后把t1或t2返回
- 核心代码:
if t1 and t2:
t1.val += t2.val
t1.left = self.mergeTrees(t1.left,t2.left)
t1.right = self.mergeTrees(t1.right,t2.right)
return t1 or t2
- 完整代码:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> 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)
return t1 or t2
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。