题目链接
解题思路
-
如果两个二叉树的对应节点都为空,则合并后的二叉树的对应节点也为空;
-
如果两个二叉树的对应节点只有一个为空,则合并后的二叉树的对应节点为其中的非空节点;
-
如果两个二叉树的对应节点都不为空,则合并后的二叉树的对应节点的值为两个二叉树的对应节点的值之和,此时需要显性合并两个节点。
-
对一个节点进行合并之后,还要对该节点的左右子树分别进行合并。这是一个递归的过程
AC代码
class Solution {
public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
if (t1 == null)
return t2;
if (t2 == null)
return t1;
TreeNode ans = new TreeNode(t1.val + t2.val);
ans.left = mergeTrees(t1.left, t2.left);
ans.right = mergeTrees(t1.right, t2.right);
return ans;
}
}