Question 617-merge two binary trees
解题思路
先序遍历,想象一下两个树如果已经被合并了,那么它的节点就一共分为两种:
- 重叠节点,其值为两棵树对应节点所保存值的和
- 独立节点,其值只来自于一棵树的对应节点。特点为其子树也为独立节点,并和它来自于同一颗树上。
代码
class Solution {
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
if (null == root1 && null == root2) return null;
if (null == root2) {
return root1;
} else if (null == root1) {
return root2;
} else {
return new TreeNode(root1.val + root2.val,
mergeTrees(root1.left, root2.left),
mergeTrees(root1.right, root2.right));
}
}
}