合并二叉树(java数据结构与算法)采用的是递归方法

简介: 合并二叉树(java数据结构与算法)采用的是递归方法

合并二叉树(java数据结构与算法)采用的是递归方法


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

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

返回合并后的二叉树。

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

示例 1:

输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]

输出:[3,4,5,5,4,null,7]

示例 2:

输入:root1 = [1], root2 = [1,2]

输出:[2,2]

递归递归

/**
 * 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 root1, TreeNode root2) {
        //先考虑三种边界情况
        if(root1 == null && root2 == null){
            return null;
        }
        if(root1 == null){
            return root2;
        }
        if(root2 == null){
            return root1;
        }
        //接下来就是root1和root2都不为空的情况,来一个小小的递归,嘿嘿嘿
        TreeNode root = new TreeNode(root1.val + root2.val);
        root.left = mergeTrees(root1.left , root2.left);
        root.right = mergeTrees(root1.right , root2.right);
        return root;
    }
}

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/merge-two-binary-trees

相关文章
|
3天前
|
存储 设计模式 算法
JAVA中的常见数据结构
JAVA中的常见数据结构
|
6天前
|
Java
Java如何标记异步方法
【8月更文挑战第13天】Java如何标记异步方法
14 1
|
5天前
|
Java
【Java】Math、System、RunTime、BigDecimal类常用方法
【Java】Math、System、RunTime、BigDecimal类常用方法
|
1天前
|
存储 Java
|
7天前
|
Java
Java aop 如何获取方法的参数体
【8月更文挑战第12天】Java aop 如何获取方法的参数体
30 2
|
10天前
|
机器学习/深度学习 算法 Java
Java调用Python方法
【8月更文挑战第7天】
|
7天前
|
Java 应用服务中间件 PHP
PHP——调用java文件中的方法
PHP——调用java文件中的方法
16 0
PHP——调用java文件中的方法
|
2天前
|
存储 Java
|
4天前
|
Java API
Java8 Lambda 设计和实现问题之在Java 8的Stream API中,parallel=false时collect方法是如何实现的
Java8 Lambda 设计和实现问题之在Java 8的Stream API中,parallel=false时collect方法是如何实现的
|
5天前
|
Java Spring 容器
Java SpringBoot 中,动态执行 bean 对象中的方法
Java SpringBoot 中,动态执行 bean 对象中的方法
14 0