合并二叉树(Java)

题目描述

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

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

null 的节点将直接作为新二叉树的节点。

返回合并后的二叉树。

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

  • 对一个节点进行合并之后,还要对该节点的左右子树分别进行合并。这是一个递归的过程。
java 复制代码
public class Solution {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        if (root1==null) {
            return root2;
        }
        if (root2==null) {
            return root1;
        }
        TreeNode merged = new TreeNode(root1.val+root2.val);
        merged.left = mergeTrees(root1.left,root2.left);
        merged.right = mergeTrees(root1.right,root2.right);
        return merged;
    }
}
相关推荐
不穿格子的程序员7 小时前
从零开始刷算法——二分-搜索旋转排序数组
数据结构·算法
做怪小疯子7 小时前
LeetCode 热题 100——哈希——最长连续序列
算法·leetcode·哈希算法
做怪小疯子7 小时前
LeetCode 热题 100——双指针——三数之和
算法·leetcode·职场和发展
高山上有一只小老虎7 小时前
等差数列前n项的和
java·算法
sin_hielo8 小时前
leetcode 2536
数据结构·算法·leetcode
flashlight_hi8 小时前
LeetCode 分类刷题:203. 移除链表元素
算法·leetcode·链表
py有趣8 小时前
LeetCode算法学习之数组中的第K个最大元素
学习·算法·leetcode
吗~喽8 小时前
【LeetCode】将 x 减到 0 的最小操作数
算法·leetcode
what_20188 小时前
list集合使用
数据结构·算法·list
hetao17338379 小时前
2025-11-13~14 hetao1733837的刷题记录
c++·算法