牛客热题:合并二叉树

news2025/1/19 8:17:30

牛客热题:二叉树与双向链表> 📟作者主页:慢热的陕西人

🌴专栏链接:力扣刷题日记

📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言

在这里插入图片描述

文章目录

  • 牛客热题:合并二叉树
    • 题目链接
    • 方法一:递归
      • 思路
      • 代码
      • 复杂度

牛客热题:合并二叉树

题目链接

合并二叉树_牛客题霸_牛客网 (nowcoder.com)

方法一:递归

思路

  • 将结果集合到t1树上
    • 当t2树为空时,直接结束递归
    • 当t1和t2都不为空时,那么将当前节点的值相加存储在t1树的对应节点
      • 并且去递归他们的子树
      • 将t2中存在的节点,而t1中不存在的节点都挂到t1树上对应的节点

代码

    void _TreeNode(TreeNode* t1, TreeNode* t2) 
    {
        //两个树为空树的时候递归结束
        if (t1 == nullptr && t2 == nullptr) return ;
        //当只有t1树为遍历完得时候也递归结束
        if (t2 == nullptr) return ;

        //当两棵树都存在该节点时,将节点值的加和放到t1对应的节点上
        if (t1 != nullptr && t2 != nullptr) 
        {
            //将当前节点的值相加
            t1->val = t1->val + t2->val;
            //分别去递归左右子树
            _TreeNode(t1->left, t2->left);
            _TreeNode(t1->right, t2->right);

            //t1不存在该节点,但是t2存在
            if (t1->left == nullptr && t2->left != nullptr) t1->left = t2->left;
            if (t1->right == nullptr && t2->right != nullptr) t1->right = t2->right;
            return ;
        }
    }
    TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) 
    {
        _TreeNode(t1, t2);
        return t1;
    }

复杂度

时间复杂度:O(M + N) ,最坏情况下,完全遍历两棵树,MN分别为两颗树的节点数

空间复杂度:O(N) ,最坏情况下,调用的函数栈帧和t2树的节点数相同

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

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

相关文章

TypeScript基础知识:TypeScript是什么?为什么会出现TypeScript?TypeScript相较于javascript有那些优势?

TypeScript(简称:TS)是JavaScript的超集(JS有的TS 都有)。 图解就是: TypeScriptType javaScript(在JS 基础之上,为JS 添加了类型支持)。 TypeScript 是微软开发的开源编程语言,可以在任何运行JavaScript的地方运行。 那么为什么要出现type…

CPT7数据保存详细步骤

一、连接设备、打开NovAtelConnect 软件 (1)点击1,并在2中输入如下命令: LOG RANGEB ONTIME 1 // 输出原始数据记录在板卡LOG RAWEPHEMB ONTIME 1 // 输出 GPS 原始星历记录在板卡LOG bdsephemerisb ONTIME 1 // 输出

VMware17.5与Ubuntu22.04虚拟机环境搭建

VMware17.5安装教程也有参考此链接 简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设…

一文读懂deepSpeed:深度学习训练的并行化

引言 在深度学习领域,模型训练的过程不仅资源密集,而且技术复杂。近年来,随着模型规模和数据量的不断增长,深度学习训练面临着越来越多的挑战。这些挑战主要体现在计算资源的需求、训练效率、模型复杂度以及内存管理等多个方面。…

32位处理的寻址方式

32位处理器兼容16位处理器的寻址方式,可以运行传统的16位代码。但是由于32位的处理器都拥有32位的寄存器和算数逻辑部件,而且同内存芯片之间的数据通路至少是32位的,因此,所有需要从寄存器或者内存地址处取得操作数的指令都被扩充…

直播卖券有妙招:实景ai无人直播系统帮助商家自动化团购直播!

在数字化浪潮席卷的今天,直播卖券已成为商家推广和营销的重要手段。然而,如何高效、精准地利用直播卖券,让每一位观众都能沉浸在购物的乐趣中,成为商家们迫切需要解决的问题。幸运的是,实景AI无人直播系统应运而生&…

升级GPT 4.0 会员,到底值不值?

对于这个问题,我的回答是:不太值得!并不是4.0不好用,这价格稍微贵了点儿。 这么贵,这谁顶的住啊?好用是好用,但是没必要。 我的使用心得 我是怎么用的呢?我先用3.5版本问问题&…

使用 ONNX Runtime 在 iPhone 上运行 Phi-3-mini

更多科技分享,请关注公众号:ONE生产力 之前我们介绍了微软最新开源的小规模模型Phi-3-mini,其计算资源占用极少,非常适合嵌入式应用和移动智能终端。今天我们将探讨在iPhone上,通过ONNX Runtime运行Phi-3-mini模型。 …

教你五行代码实现大批量文件重命名

问题背景 文件夹里的大量文件,命名很乱,并且要重新命名为固定长度顺序的文件很麻烦。这里采用5行python实现大批量文件按要求统一命名。 现有文件夹列表 tulips 代码实现 main.py import os path rtulips/ for num, file in enumerate(os.listdir(…

unity制作app(7)--panel control

根据用户的状态,在界面中显示不同的panel 1.新建一个脚本PanelControl,控制各个脚本的显示与隐藏 2.实现第一个逻辑判断功能:如果没有登记过信息,就直接跳转到登记界面,如果登记过,跳转到住界面。许多需要…

apifox接口调试工具的使用,代替postman

官网链接:Apifox (代替postman工具) 下载apifox工具 使用步骤 安装本地下载的apifox.exx 登录apifox 接口调用

DDNS配置详解

正文共:1111 字 8 图,预估阅读时间:1 分钟 前面配置了DDNS(拨号有公网IP地址了,肯定要通过DDNS用起来啊!),有不少小伙伴咨询具体的配置问题。为了方便大家深入理解DDNS的技术原理&am…

翻译《The Old New Thing》- Stupid debugger tricks: Calling functions and methods

Stupid debugger tricks: Calling functions and methods - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20070427-00/?p27083 Raymond Chen 2007年04月27日 一个比较笨的调试技巧:调用函数和方法 在过去,如果你想在…

系统架构师考试(二)

敏捷方法 CMMI代表Capability Maturity Model Integration,是一种用于评估和改进组织软件工程和系统工程的模型。CMMI提供一个框架,帮助组织评估其软件和系统工程的成熟度,该模型基于过程成熟度模型(CMM)和集成项目管理…

DE2-115串口通信

目录 一、 内容概要二、 Hello Nios-II2.1 Nios-II编程2.1.1 硬件Ⅰ 搭建环境Ⅱ 编写代码 2.1.2 软件2.1.3 烧录Ⅰ硬件Ⅱ 软件 2.2 verilog编程 三、 心得体会 一、 内容概要 分别用Verilog和Nios软件编程, 实现DE2-115开发板串口输出“Hello Nios-II”字符到笔记本电脑串口助…

利用宝塔面板搭建nodejs网站(不使用pm2)

利用宝塔面板搭建nodejs网站(不使用pm2) 1. 准备代码文件2. 将代码上传至云主机3. 云主机配置3.1 绑定域名3.2 利用面板配置node环境3.3 利用面板增加node项目 4. 打开端口 暂时只演示http的。https类似,需要添加证书。 1. 准备代码文件 清单…

SpringBoot环境隔离Profiles

前言 通常我们开发不可能只有一个生产环境,还会有其它的开发,测试,预发布环境等等。为了更好的管理每个环境的配置项,springboot也提供了对应的环境隔离的方法。 直接上干货 知识点 激活环境方法 1,在application…

伪头部校验

本章问题 UDP和TCP的伪首部只用于计算校验和,在UDP和TCP的报文中是不存在的,为什么要引入伪首部呢?为什么伪首部的要有这些字段?这里我们就先看一下TCP和UDP的首部格式。 TCP和UDP首部 源端口目的端口:是0-65535任…

CSP认证刷题笔记(3)最大矩形(13年CSP认证第三题)

文章目录 题目描述基本思路求解代码 题目描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1≤i≤n)个矩形的高度是 hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3,1,6,5,2,3。 请找出…

聚苯并咪唑(PBI)为超高性能工程塑料 未来应用前景较好

聚苯并咪唑(PBI)为超高性能工程塑料 未来应用前景较好 聚苯并咪唑(简称PBI),是一类以苯并咪唑基团作为结构重复单元的杂环聚合物。聚苯并咪唑不溶于水,溶于强极性溶剂,具有耐高温、耐腐蚀、抗辐…