​LeetCode解法汇总617. 合并二叉树

news2024/11/22 8:56:14

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台


描述:

给你两棵二叉树: 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]

提示:

  • 两棵树中的节点数目在范围 [0, 2000] 内
  • -104 <= Node.val <= 104

 

解题思路:

* 解题思路:

* root1和root2合并,我们分为三种情况:

* root1为空时,则直接使用root2及其子节点即可。

* root2为空时,则直接使用root1即可。

* 都不为空时,则使用root1和root2的和,并且递归计算其子节点。

代码:

class Solution617
{
public:
    TreeNode *mergeTrees(TreeNode *root1, TreeNode *root2)
    {
        if (root1 == nullptr)
        {
            // root1为空,直接用root2的
            root1 = root2;
        }
        else if (root2 == nullptr)
        {
            // root2为空,直接用root1的
        }
        else
        {
            // 都不为空,则合并
            root1->val += root2->val;
            if (root1->left != nullptr || root2->left != nullptr)
            {
                root1->left = mergeTrees(root1->left, root2->left);
            }

            if (root1->right != nullptr || root2->right != nullptr)
            {
                root1->right = mergeTrees(root1->right, root2->right);
            }
        }

        return root1;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/875426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能制造感知产品在工业4.0中的应用

在工业4.0时代&#xff0c;智能制造已经成为制造行业的重要发展方向。智能制造感知产品作为智能制造的核心组成部分&#xff0c;对于提高制造效率、降低成本、提升产品质量等方面具有重要的作用。本文将详细介绍智能制造感知产品在工业4.0中的应用。 智能制造感知产品在工业4.…

磁场是灵魂散发出来的力量

为什么有些人的思维很敏捷&#xff0c;但是&#xff0c;到了另外一个人面前&#xff0c;他的思维会突然错乱或停顿了呢&#xff1f; 每一个人的磁场都有一种释放和吸收的功能&#xff0c;如果经常和磁场比较污浊的人接触&#xff0c;他也会把我们的磁场给染污了。如果跟一个磁场…

IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)(2023.1.3)

我们往往会用到多版本的IDEA进行一个Maven项目配置部署&#xff0c;还有tomcat的配置&#xff0c;这里就有你需要的&#xff0c;有低版本的&#xff0c;也有高版本的&#xff0c;根据自己的情况来进行一个操作 一、前言 当涉及到软件开发和项目管理时&#xff0c;使用一个可靠的…

iPhone恢复备忘录的4种方法!超好用!

iPhone备忘录能够帮助我们记录一些重要的事务或者个人事项&#xff0c;帮助减少遗漏和失误。小编也常常使用iPhone备忘录来记录事情&#xff0c;避免自己忘记。但有时候可能会因为自己的操作失误&#xff0c;导致备忘录误删除或丢失&#xff0c;那么这时候该怎么办呢&#xff1…

电子行业精密空调监控,这个方法非常全面!

在电子行业&#xff0c;精密空调监控扮演着至关重要的角色。电子设备的制造、储存和运行过程中&#xff0c;恒定的环境条件如温度、湿度和空气质量对于确保设备的高效运行和稳定性至关重要。 由于许多电子元件对环境变化极为敏感&#xff0c;因此精密空调监控成为了维护产品质量…

使用UDP协议实现—翻译服务器

目录 前言 1.设计思路&#xff1a; 2.词库设计 3.设计客户端 4.设计服务端 5.编译客户端和服务端 6.测试结果 7.总结 前言 上一篇文章中&#xff0c;我们使用UDP协议编码完成了一个简单的服务器&#xff0c;实现数据通信&#xff0c;服务器设计出来后目的不仅仅只是实现…

C#软件外包开发框架

C# 是一种由微软开发的多范式编程语言&#xff0c;常用于开发各种类型的应用程序&#xff0c;从桌面应用程序到移动应用程序和Web应用程序。在 C# 开发中&#xff0c;有许多框架和库可供使用&#xff0c;用于简化开发过程、提高效率并实现特定的功能。下面和大家分享一些常见的…

VeraCard已经上线了 — 快来领取你的吧!

VeraCard现在已经可以订购&#xff0c;并为英国居民积极发货&#xff01;VeraCard是一张Visa借记卡&#xff0c;是我们与DAMEX合作推出的。Verasity是在DAMEX上列出的第一个替代币&#xff0c;并且是第一个拥有自己品牌卡片的代币。有了VeraCard&#xff0c;Verasity社区成员现…

OpenCV图像处理——形态学操作

目录 连通性形态学操作腐蚀和膨胀开闭运算礼帽和黑帽 连通性 形态学操作 形态学转换是基于图像形状的一些简单操作。它通常在二进制图像上执行。腐蚀和膨胀时两个基本的形态学运算符。然后它的变体形式如开运算&#xff0c;闭运算&#xff0c;礼帽黑帽等 腐蚀和膨胀 cv.erode…

OSI七层模型和TCP/IP四层模型

OSI七层模型和TCP/IP四层模型 七层模型(OSI) OSI七层模型&#xff08;Open Systems Interconnection Reference Model&#xff09;是一个用于计算机网络体系结构的标准化框架&#xff0c;旨在定义网络通信中不同层次的功能和协议。 各个层次具体如下&#xff1a; 物理层&am…

【Spring专题】Spring之Bean的生命周期源码解析——阶段一(扫描生成BeanDefinition)

目录 前言阅读准备阅读指引阅读建议 课程内容一、生成BeanDefinition1.1 简单回顾*1.2 概念回顾1.3 核心方法讲解 二、方法讲解2.1 ClassPathBeanDefinitionScanner#scan2.2 ClassPathBeanDefinitionScanner#doScan2.3 ClassPathScanningCandidateComponentProvider#findCandid…

中国电子学会2021年09月C++语言等级考试试卷一级真题及(参考答案)

一, 解析:主要考察变量类型的转换。 #include<iostream> using namespace std;int main() {int a,b;cin>>a>>b;cout<<a*(long long)b;return 0; }二, 解析:输入输出 #include<iostream> using namespace std;int main() {int a;

excel操作之向下填充快速操作(序号1->100)

开始-》填充-》序列-》列 步长值为1&#xff0c;终止值为100 如果是日期操作

企业想实现数字化转型需要搭建什么平台来实现?

实现数字化转型需要企业建立全面、集成的平台&#xff0c;以支持采用现代技术、提高运营效率、改善客户体验并促进数据驱动的决策。虽然具体的平台要求可能会根据行业和公司的需求而有所不同&#xff0c;但一些基本组件对于成功的数字化转型至关重要&#xff1a; 1.云基础设施…

易语言调用大漠插件免注册到系统和注册VIP源码(标准版)

源码名称&#xff1a;易语言调用大漠插件免注册到系统和注册VIP源码有完整的备注说明.有两个源码,一个是将dm.dll注册到系统调用方法一个是不将dm.dll注册到系统调用方法以用用注册码来注册大漠插件VIP方法. 源码下载&#xff08;下面三个下载地址&#xff0c;请选择一个网盘下…

SpringBoot复习:(45)@Component定义的bean会被@Bean定义的同名的bean覆盖

有同名的bean需要配置&#xff1a; spring.main.allow-bean-definition-overridingtrue 否则报错。 package cn.edu.tju.component;import org.springframework.stereotype.Component;Component public class Person {private String name;private int age;{this.name "…

docker安装达梦数据库

下载安装包 https://eco.dameng.com/download/ 启动达梦数据库 docker run -d -p 5236:5236 --restartalways --name dm8_01 --privilegedtrue -e PAGE_SIZE16 -e LD_LIBRARY_PATH/opt/dmdbms/bin -e INSTANCE_NAMEdm8_01 -v /data/dm8_01:/opt/dmdbms/data dm8_single:v8.…

SD 关于Va01/2/3 字段 KOMV-KBETR 程度为0的问题

有问题的系统 S4 (va01-项目概览 页签 右上角的 配置-管理员) 之前的ECC P环境 使得需要看到此字段的用户群体一直有问题&#xff0c;影响他们实际作业。 但是没有找到修改该字段的地方。 非常时期用非常手段吧。既然找不到&#xff0c;那就冒个险 改数据 是存在TCVIEW表里面…

Design-Pattern设计模式

Design-Pattern设计模式 图说设计模式 图说设计模式 在线书籍 软件模式是将模式的一般概念应用于软件开发领域&#xff0c;即软件开发的 总体指导思路或参照样板。软件模式并非仅限于设计模式&#xff0c;还包括 架构模式、分析模式和过程模式等&#xff0c;实际上&#xff…

35岁,体能断崖?你需要健康的生活习惯

大厂裁员&#xff0c;称35岁以后体能下滑&#xff0c;无法继续高效率地完成工作&#xff1b;体重上涨&#xff0c;因为35岁以后新陈代谢开始变慢&#xff1b;甚至坐久了会腰疼、睡眠困扰开始加重&#xff0c;在众多的归因中&#xff0c;35岁的到来&#xff0c;为一切的焦虑埋下…