Leetcode617. 合并二叉树(C语言)

2023-11-12

Leetcode617. 合并二叉树(C语言)

数据结构-树:算法与数据结构参考

题目:
给定两个二叉树,将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。例:
输入: [1,3,2,5] [2,1,3,null,4,null,7]
输出: [3,4,5,5,4,null,7]在这里插入图片描述
注意: 合并必须从两个树的根节点开始。

思路:
递归,在每次递归中将根节点值相加

代码:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */

struct TreeNode* mergeTrees(struct TreeNode* t1, struct TreeNode* t2){
    if(!t1) return t2;
    if(!t2) return t1;
    
    t1->val=t1->val+t2->val;
    
    t1->left=mergeTrees(t1->left,t2->left);
    t1->right=mergeTrees(t1->right,t2->right);
    
    return t1;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Leetcode617. 合并二叉树(C语言) 的相关文章

  • java使用File类创建一个文件和遍历文件目录实例

    java使用File类创建一个文件 这个类的用处只涉及到文件的创建 修改和删除 并不对文件内部的内容进行其他操作 public class F public static void main String args File file ne
  • vue3.0+Ts+全局自定义指令实现动态按钮【操作】

    1 介绍 本文采用vue3 0 Ts 全局自定义指令实现动态按钮 操作 应用场景为后端发送动态菜单 操作 操作信息存放在路由的meta中并将路由存在vuex中 模板文件使用全局自定义指令动态判断是否显示该按钮 2 编写路由相关内容 2 1
  • 使用python进行十大排序算法图文详解【阅读数篇文章后集优】

    本文通过阅读 观看大量文章和视频 筛选出较优质的文章并实际运行 验证代码而作 文章部分内容进行了参考 阅读的大量文章中不乏水文 就算文章不错的也有部分错误 使得读者难以理解或理解错误 这也是我作此文的目的 文末附有这些我觉得比较好的文章的链
  • python目标检测答案_Python OpenCV 3 使用背景减除进行目标检测

    背景减除 Background Subtraction 是许多基于计算机视觉的任务中的主要预处理步骤 如果我们有完整的静止的背景帧 那么我们可以通过帧差法来计算像素差从而获取到前景对象 但是在大多数情况下 我们可能没有这样的图像 所以我们需
  • c语言判断格式是否IPv6

    int net is validipv6 const char hostname struct sockaddr in6 addr if hostname return 1 if strchr hostname return 1 暂时排除
  • C# 使用RestSharp实现Postman中的各种形式的请求

    目录 一 导入命名空间 二 构建客户端 创建客户端对象 设置当前URL 设置响应超时 添加默认Header 添加单项Cookie 添加多项Cookie 三 构建请求 创建请求对象 添加参数Header 添加单项Cookie 添加多项Cook
  • ffmpeg为视频设置透明度的几种方案

    ffmpeg命令目录 方案一 推荐 在这里插入图片描述 https img blog csdnimg cn 20190618215408132 gif pic center 方案二 对图片有效 经过测试 同方案二 只是先将视频转换成一张张帧
  • Vue拖拽排序(el-table ajax返回数据)

  • Unity Bolt使用协程等待

    使用Unity bolt插件可以进行一些简单逻辑开发 本质上相当于把C 接口以图形化的方式进行调用 但是怎么使用协程进行等待呢 经过一些研究 可以使用继承WaitUnit的组件方式进行扩展 下面是具体的操作步骤 1 等待组件扩展 经过查找
  • 安装MMDetection

    文章目录 前言 MMDetection介绍 MMDetection 整体构建流程和思想 其他信息 参考博客 前言 记录安装MMDetection MMDetection介绍 MMDetection 整体构建流程和思想 这里引用知乎回答图片

随机推荐

  • 企业微信自建应用通过PHP进行收发消息

    我们在企业微信的使用中肯定会用到自建应用 自建应用使用最多的功能就是消息的推送 使用的场景也有很多 例如 在公司内网的程序 可以监控员工在什么时候进行了敏感操作 比如某管理员删除了帐号或者其他内容 可以在进行操作时候推送一条消息到自建应用上
  • 基于GPU的三维体素化

    详情请看我的个人博客的体素化Voxelization 基于GPU的三维体素化
  • Power BI区域可视化(中国、各省市、各区县)

    1 制作SVG地图元件 Axure 复制到 Axure 的全国 含省 市 区 SVG 地图元件 PNG TO SVG 从复制到 Axure 的全国 含省 市 区 SVG 地图元件上截图 另存为PNG PNG TO SVG 设置SVG pat
  • Linux运维面试精选题库(一)

    运维精选面试题 1 什么是数据库 DB DataBase 数据库 依照某种数据模型进行组织并存放到存储器的数据集合 DBMS DataBase Management System 数据库管理系统 用来操纵和管理数据库的大型服务 软件 DBS
  • 手把手教你使用USB的CDC+MSC复合设备(基于stm32f407)- 2

    接上文 手把手教你使用USB的CDC MSC复合设备 基于stm32f407 此文主要是记录一下usb枚举时抓取的一些数据以及usb msc涉及的部分scsi协议 USB MSC协议 主要包括usb协议 msc类协议 scsi协议 SDIO
  • Python序列化protobuf中的repeated数据

    基本数据类型 append追加数据即可 clientRequestBody ids append 1 clientRequestBody ids append 2 如果ids需要的数据类型是列表 用extend 方法即可 具体参见exten
  • 【网络编程】揭开套接字的神秘面纱

    文章目录 1 peach 简单理解TCP UDP协议 peach 2 peach 网络字节序 peach 3 peach socket编程接口 peach 3 1 apple socket 常见API apple 3 2 apple soc
  • 激光雷达处理简介

    目录 1 什么是激光雷达 2 什么是点云 3 激光雷达的类型 4 激光雷达技术的优势 5 激光雷达处理概述 6 激光雷达技术的应用 1 什么是激光雷达 激光雷达 即激光探测和测距 是一种三维激光扫描方法 激光雷达传感器提供有关环境的三维结构
  • 如何将PC电脑变成web服务器:将内网主机映射到外网实现远程访问

    如何将PC电脑变成web服务器 将内网主机映射到外网实现远程访问 我是艾西 今天跟大家分享内容还是比较多人问的一个问题 如何将PC电脑变成web服务器 内网主机作为web服务器 内容包括本地内网映射 多层内网映射解决方案 绕过电信80端口封
  • C++运算符重载(简单易懂)

    一 运算符重载 对已有的运算符进行重新定义 赋予另一种功能以适用不同的数据类型 1 加号运算符 重载 创建类 Person class Person public 1 成员函数重载 号 本质 Person p3 p1 operator p2
  • 结构体(struct)继承——[C++语言中]

    在C 语言中 struct对C语言中的strcut进行了扩充 已经不仅仅是一个包含不同数据类型的数据结构体了 在C 语言中 strcut可以包含成员函数 可以实现继承 可以实现多态 在C 语言中 结构体struct与类class的最本质区别
  • JavaScript设计模式(二)——简单工厂模式、抽象工厂模式、建造者模式

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 正逐渐往全干发展 个人状态 研发工程师 现效力于中国工业软件事业 人生格言 积跬步至千里 积小流成江海 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 3项目实战 Node js
  • Git查看和编辑配置并设置默认编辑器为VSCode

    1 查看已有配置 使用命令 git config list show origin 查看已有的配置 file D Git etc gitconfig diff astextplain textconv astextplain file D
  • 如何剪辑视频?方法来了,零基础也能学会!

    视频怎么剪辑呀 刚刚用录屏软件录制了一段视频 但是录进去了很多不需要的画面 需要进行修改 可是不知道视频怎么剪辑 有没有人知道剪辑视频的方法 推荐一下 剪辑视频是一门重要的技能 无论是在日常生活中还是工作中 都需要用到 从个人Vlog到专业
  • 给我写一段nginx代码

    server listen 80 server name example com location root var www example index index html index htm
  • (Struts2学习篇)Struts2标签库(表单标签)

    一 jsp页面代码 index jsp
  • CSS实现DIV的水平与垂直居中

    使用CSS样式实现DIV的水平与垂直居中 1 使用 div 标签的 align 属性实现水平居中 HTML中的 div 标签的 align 属性用于规定 div 元素中的内容的水平对齐方式 所有浏览器都支持 align 属性 语法 div
  • prometheus中常用的查询

    prometheus server 可以通过HTTPAPI的方式进行查询 官网链接https prometheus io docs prometheus latest querying basics 我这边主要用到的是实时查询 当然prom
  • Mybatis注意小笔记

    映射文件中的namespace是用于绑定Dao接口的 即面向接口编程 1 接口式编程 原生 Dao gt DaoImpl mybatis Mapper gt xxMapper xml 2 SqlSession代表和数据库的一次会话 用完必须
  • Leetcode617. 合并二叉树(C语言)

    Leetcode617 合并二叉树 C语言 数据结构 树 算法与数据结构参考 题目 给定两个二叉树 将它们中的一个覆盖到另一个上时 两个二叉树的一些节点便会重叠 如果两个节点重叠 那么将他们的值相加作为节点合并后的新值 否则不为 NULL