当前位置: 首页 > 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;
    }
};

相关文章:

  • 【常见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 完整实战手册
  • 中巡组在行动丨①震慑:这些地区有官员落马
  • 北洋“修约外交”的台前幕后——民国条约研究会档案探研
  • 吉林:消纳绿电,“氢”装上阵
  • 水豚“豆包”出逃已40天,扬州茱萸湾景区追加悬赏
  • “不为一时一事所惑,不为风高浪急所扰”——习近平主席对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典纪实
  • 韩国总统大选候选人登记结束,共7人参选