java中合并二叉树

题目如下:
在这里插入图片描述

 private TreeNode buildTree(TreeNode t1,TreeNode t2) {
        TreeNode node = new TreeNode(-1);
        if(t1 == null && t2 == null) {
            return null;
        }
        if(t1 == null && t2 != null) {
          
            return t2;
        }
        if(t1 != null && t2 == null ) {
          
            return t1;
        }    
        node.val = t1.val+t2.val;
        node.left = buildTree(t1.left,t2.left);
        node.right = buildTree(t1.right,t2.right);
        return node;
    }
    public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
        TreeNode result = buildTree(t1,t2);
        return result;

    }

这个问题用递归处理比较简单,我们用一个构造树的函数将 t1,t2 引入,然后返回这棵树。
这个函数呢思路也是比较简单的,首先我们创建一个树的根节点,判断t1,t2的情况,如果都为空,那结果也自然为空,当其中一个为空时,那结果也自然是另一个不为空的树,直接返回非空树就好了,最后剩下的结果就是都不为空了,结果就需要将两棵树的值加在一起作为最终结果,然后利用递归将她的左子树构造出来,再构造右子树,最后返回根节点,这个函数就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lhj_loveFang_1105

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值