首页 > 其他分享 >刷刷刷 Day 20 | 617. 合并二叉树

刷刷刷 Day 20 | 617. 合并二叉树

时间:2023-01-24 21:12:56浏览次数:59  
标签:20 617 二叉树 TreeNode null root1 节点 root2

617. 合并二叉树

LeetCode题目要求

给你两棵二叉树: root1 和 root2 。

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。

返回合并后的二叉树。

注意: 合并过程必须从两个树的根节点开始。

图

示例

输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]
输出:[3,4,5,5,4,null,7]
解题思路

合并两个二叉树,从根节点开始,那么就要通过前序遍历(中左右)进行操作。
通过前序遍历递归的方式,终止条件为 两个 二叉树都为空。只要有一个存在节点,就要递归下去。

上代码

class Solution {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        // 从根节点遍历两个 二叉树
        // 前序遍历,中 左右

        // 确定终止条件
        if (root1 == null && root2 == null) {
            return null;
        }

        int root1Val = 0;
        if (root1 != null) {
            root1Val = root1.val;
        }
        int root2Val = 0;
        if (root2 != null) {
            root2Val = root2.val;
        }

        TreeNode root = new TreeNode(root1Val + root2Val);

        // 左节点 , 右节点
        TreeNode root1Left = null;
        TreeNode root2Left = null;
        TreeNode root1Right = null;
        TreeNode root2Right = null;
        if (root1 != null) {
            root1Left = root1.left;
            root1Right = root1.right;
        }
        if (root2 != null) {
            root2Left = root2.left;
            root2Right = root2.right;
        }
        root.left = mergeTrees(root1Left, root2Left);
        root.right = mergeTrees(root1Right, root2Right);

        return root;
    }
}

附:学习资料链接

标签:20,617,二叉树,TreeNode,null,root1,节点,root2
From: https://www.cnblogs.com/blacksonny/p/17066385.html

相关文章

  • 2023 hgame趣题——2
    Helpmarvin最近在做hgameweek3的题,强度不小,Bi0s剩下那个密码(bad2code)过些天再更,今天发一个hgameweek1的IoT题目。SPI协议用单独的数据线和单独的时钟信号来保证发送......
  • 《数据结构》课程设计任务书[2023-01-24]
    《数据结构》课程设计任务书[2023-01-24]《数据结构》课程设计任务书此任务书仅适用选课储岳中老师的学生QQ群:7492682161(入群密码:2022DS1)一、设计要求仔细阅读《......
  • 刷刷刷 Day 20 | 654. 最大二叉树
    654.最大二叉树LeetCode题目要求给定一个不重复的整数数组 nums。 最大二叉树 可以用下面的算法从 nums递归地构建:创建一个根节点,其值为 nums中的最大值。递......
  • P2602 [ZJOI2010] 数字计数
    P2602[ZJOI2010]数字计数-洛谷|计算机科学教育新生态(luogu.com.cn)数位DP模板题由于是对0~9进行统计,所以我们只需对每一个数进行数位DP即可不过对于0和1~9还是......
  • 二叉树TwT
    L2-011玩转二叉树给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设......
  • 刷刷刷 Day 18 | 106. 从中序与后序遍历序列构造二叉树
    106.从中序与后序遍历序列构造二叉树LeetCode题目要求给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构......
  • 2023-1-24 WAMP与XAMPP同时安装在一台电脑上是否冲突?
    WAMP与XAMPP同时安装在一台电脑上是否冲突?会有冲突首先,Apache和MySQL都是服务,这里就有可能冲突,这是最大的问题;其次,才是Apache和MySQL监听端口冲突的问题,端口冲突都很......
  • P2260 [清华集训2012]模积和
    P2260[清华集训2012]模积和求\[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}(n\bmodi)\times(m\bmodj),i\neqj\]mod19940417的值分析假设\(n\lem\)$......
  • 2023牛客寒假算法基础集训营1 个人题解(ACDHKL)
    A.WorldFinal?WorldCup!(I)题意:给10场比赛的点球输赢情况,奇数为A队点球,偶数为B队点球思路:用两个变量x,y来分别存A队当前赢的场次和B队当前赢的场次然后就就扫......
  • Codeforces Round #845 (Div. 2) and ByteRace 2023 A-D
    CodeforcesRound#845(Div.2)andByteRace2023A-DA.EverybodyLikesGoodArrays!题意:对给定数组进行操作:删除相邻两项,替换为两项的乘积,使得该数组奇偶相间。......