题目:
题解:
同时遍历两棵树,构建新树:
- 如果两个节点都为空,返回空
- 如果两棵树中有一颗为空,返回非空节点
- 如果两个都不为空,将两个节点值相加,作为新节点的值
时间复杂度:O(min(m,n))
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
if (root1 == null && root2 == null) {
return null;
}
if (root1 == null) {
return root2;
}
if (root2 == null) {
return root1;
}
TreeNode node = new TreeNode(root1.val + root2.val);
node.left = mergeTrees(root1.left, root2.left);
node.right = mergeTrees(root1.right, root2.right);
return node;
}