当前位置: 首页 > news >正文

算法-二叉树篇16-合并二叉树

合并二叉树

力扣题目链接

题目描述

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

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

返回合并后的二叉树。

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

解题思路

把树2合并到树1即可,对于每个节点,我们合并数值给树1;
对于树1和树2只存在一个的情况下,只返回存在的那个;
都不存在就返回null。

题解

class Solution {
public:
    TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
        if(!root1 && !root2){
            return NULL;
        }

        if(!root1){
            return root2;
        }
        else if(!root2){
            return root1;
        }

        root1->val += root2->val;
        root1->left = mergeTrees(root1->left, root2->left);
        root1->right = mergeTrees(root1->right, root2->right);

        return root1;
    }
};
http://www.dtcms.com/a/47488.html

相关文章:

  • 【常见BUG】Spring Boot 和 Springfox(Swagger)版本兼容问题
  • Linux 访问控制列表(ACLs)| getfacl / setfacl | 应用案例
  • 蒙特卡洛方法 估算圆周率、实现定积分
  • 通俗解释机器学习中的召回率、精确率、准确率
  • 详细介绍一下springboot自定义注解的使用方法
  • 【强化学习】Isaac sim 4.5 UI简介
  • [KEIL]单片机技巧 01
  • C#知识|泛型Generic概念与方法
  • 存贮论模型案例与Matlab实现
  • Ubuntu显卡服务器黑屏无响应的维护日志
  • 【Vue3】实现一个高可用的 markdown 显示组件
  • 【C++/数据结构】栈
  • LeetCode 718 - 最长重复子数组
  • VADv2: 基于矢量表征和概率规划的E2E架构
  • 《英雄无敌3:死亡阴影》游戏秘籍
  • 使用sam-vit-base 模型在caltech256 数据集上实现图片召回
  • 算法题笔记(自用)——Python
  • PHP实现国密SM4算法,银行系统加密算法,JAVA和PHP可相互转换(附完整源码)
  • 矩阵基本概念
  • Spring Boot 自定义 Starter 完整实战手册
  • QT:Graphics View的坐标系介绍
  • 消息中间件应用的常见问题与方案?
  • JS :移除数组中的指定数据
  • LeetCode 热题 100 53. 最大子数组和
  • 老牌工具,16年依然抗打!
  • 计算机毕业设计SpringBoot+Vue.js林业产品推荐系统 农产品推荐系统 (源码+文档+PPT+讲解)
  • Github 2025-02-28 Java开源项目日报 Top9
  • Spring Boot spring-boot-maven-plugin 参数配置详解
  • 使用python解决硬币找零问题
  • jvm内存模型,类加载机制,GC算法,垃圾回收器,jvm线上调优等常见的面试题及答案