方法一:递归
思路:
- 如果两个树的节点有一个为空返回另外一个
如果两个都不为空:
- 计算两个节点的和保存到第1个树的节点中
- 然后递归遍历左右子树
- 返回第1个树的节点 ```go /**
- Definition for a binary tree node.
- type TreeNode struct {
- Val int
- Left *TreeNode
- Right *TreeNode
} / func mergeTrees(root1 TreeNode, root2 TreeNode) TreeNode { if root1 == nil { return root2 }
if root2 == nil { return root1 }
//如果两个都不空 root1.Val += root2.Val //如果左子树没有直接进行返回 root1.Left, root1.Right = mergeTrees(root1.Left, root2.Left), mergeTrees(root1.Right, root2.Right)
return root1 } ```
