前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode-617. 合并二叉树

leetcode-617. 合并二叉树

作者头像
灰太狼学Java
发布2022-06-17 10:25:05
1190
发布2022-06-17 10:25:05
举报
文章被收录于专栏:Java学习驿站

JAVA解法

代码语言:javascript
复制
/**
 * Definition for a binary tree node.
 * public 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) {
        // 对 t1 节点进行判空,若该节点为空则直接返回 t2 的对应节点
        if (t1 == null) {
            return t2;
        }
        // 对 t2 节点进行判空,若该节点为空则直接返回 t1 的对应节点
        if (t2 == null) {
            return t1;
        }
        // 定义新的根节点为两棵树的根节点的和
        TreeNode merged = new TreeNode(t1.val + t2.val);
        // 新定义的树的所有左子树分别为 t1 和 t2 各自对应的左子树的和
        merged.left = mergeTrees(t1.left, t2.left);
        // 新定义的树的所有右子树分别为 t1 和 t2 各自对应的右子树的和
        merged.right = mergeTrees(t1.right, t2.right);
        // 返回最终合并完的二叉树
        return merged;
    }
}

题解分析

  这道题首先对传进来的两个树节点进行判空,若 t1 的值为空,则返回 t2 的值,若 t2 的值为空则直接返回 t1 的值。若两个均不为空,则两个进行相加,由于传进来的是两个根节点,因此新的树的根节点即为这两个值的和,接下来就是要把两颗二叉树对应位置的值进行相加作为新的二叉树对应位置的值,用 mergeTrees 方法对整棵树的所有左子树完成以上相加的操作,同理再对所有右子树进行对应相加的操作,最终一颗新的符合题意的二叉树就生成了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JAVA解法
  • 题解分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档