前言
合并二叉树的规则:
1.如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;
2.如果有节点微为 null,则另一个节点将直接作为新二叉树的节点。
实现原理
1.同样使用递归函数,使用前序遍历优先生存合并的节点,再逐次往下生成对应节点并设置为对应左右子树。
2.递归退出条件:其中一个节点的值为空,返回另一个节点。
3.递归函数:mergeTrees(TreeNode t1,TreeNode t2).
具体代码实现
package test10;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
class Solution {
public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
if (t1 == null) {
return t2;
}
if (t2 == null) {
return t1;
}
TreeNode merged = new TreeNode(t1.val + t2.val);
merged.left = mergeTr