【两颗二叉树】【递归遍历】【▲队列层序遍历】Leetcode 617. 合并二叉树

【两颗二叉树】【递归遍历】【▲队列层序遍历】Leetcode 617. 合并二叉树

    • 解法1 深度优先 递归 前序
    • 解法2 采用队列进行层序遍历 挺巧妙的可以再看

在这里插入图片描述

---------------🎈🎈题目链接🎈🎈-------------------

解法1 深度优先 递归 前序

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        if(root1==null) return root2;
        if(root2==null) return root1;

        TreeNode root = new TreeNode(root1.val+root2.val);
        
        root.left = mergeTrees(root1.left,root2.left);  
        root.right = mergeTrees(root1.right,root2.right);
        
        return root;
    }
}   
    

解法2 采用队列进行层序遍历 挺巧妙的可以再看

在temp1 的基础上改 改好了返回


class Solution {
    public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
        Queue<TreeNode> myqueue = new LinkedList<>();
        if(root1 == null) return root2;
        if(root2 == null) return root1;
        myqueue.add(root1);
        myqueue.add(root2);

        while(!myqueue.isEmpty()){
            TreeNode temp1 = myqueue.poll();
            TreeNode temp2 = myqueue.poll();
            temp1.val = temp1.val+temp2.val;

            if(temp1.left!=null && temp2.left!= null){ // 如果两棵树左节点都不为空,加入队列
                myqueue.add(temp1.left);
                myqueue.add(temp2.left);
            }

            if(temp1.right!=null && temp2.right!= null){ // 如果两棵树左节点都不为空,加入队列
                myqueue.add(temp1.right);
                myqueue.add(temp2.right);
            }

            if(temp1.left==null){ // 如果temp1的左节点为空,直接赋值temp2.left
                temp1.left = temp2.left;
            }

            if(temp1.right==null){ // 如果temp1的右节点为空,直接赋值temp2.right
                temp1.right = temp2.right;
            }
        }
        return root1;
    }
}


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【GPU驱动开发】- mesa编译与链接过程详细分析

前言 不必害怕未知&#xff0c;无需恐惧犯错&#xff0c;做一个Creator&#xff01; 一、总体框架图 暂时无法在飞书文档外展示此内容 二、Mesa API 处理 OpenGL 函数调用 Mesa API 负责实现 OpenGL 和其他图形 API 的函数接口。Mesa API 表是一个重要的数据结构&#xf…

密码学在 Web3 钱包中的应用:私钥是什么?bitget钱包为例

在非对称加密演算法中&#xff0c;私钥是一串随机生成的数字&#xff0c;通常以十六进制数表示&#xff08;也就是由0、1、2、3、4、5、6、7、8、9、a、b、c、d、e和f组成&#xff09;。私钥生成后&#xff0c;这串数字被作为一个单向数学函数中的输入值&#xff0c;计算产生的…

如何在nginx上设置html不缓存

一、简介 前端项目发布以后&#xff0c;经常会遇到访问不到最新的版本&#xff0c;这主要是由于我们项目的入口文件index.html被浏览器或者代理缓存了&#xff0c;没有实时拉取到最新文件。本文将介绍一下在nginx上如何设置html文件不缓存。 二、Cache-Control介绍 2.1 服务…

GEE入门篇|图像处理(一):理论介绍

光谱指数是基于地球表面不同的物体和土地覆盖反射不同波长的不同数量的太阳光的事实。例如&#xff0c;在光谱的可见部分&#xff0c;健康的绿色植物反射大量的绿光&#xff0c;同时吸收蓝光和红光——这就是为什么它在我们的眼中是绿色的。来自太阳的光的波长也超出了人眼所能…

aiohttp 目录遍历漏洞复现(CVE-2024-23334)

0x01 产品简介 aiohttp是一个用于异步网络编程的Python库,支持客户端和服务器端的网络通信。它利用Python的asyncio库来实现异步IO操作,这意味着它可以处理大量并发网络连接,而不会导致线程阻塞或性能下降。aiohttp常用于需要高性能网络通信的应用程序,如高频交易平台、大…

数据分析-Pandas数据探查初步柱状图

数据分析-Pandas数据探查初步柱状图 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&am…

单宽GPU卡和双宽GPU卡是什么意思?

问题描述&#xff1a; 单宽GPU卡和双宽GPU卡是什么意思? 解答&#xff1a; 单宽GPU卡和双宽GPU卡是指安装在计算机中的不同尺寸的图形处理单元&#xff08;GPU&#xff09;卡。 单宽GPU卡通常是一张标准尺寸的PCIe扩展卡&#xff0c;它的宽度与其他PCIe设备相同&#xff0c…

Yapi部署

【GO开发工程师】Yapi部署 推荐个人主页&#xff1a;席万里的个人空间 文章目录 【GO开发工程师】Yapi部署1、Yapi部署 1、Yapi部署 初始化yapi&#xff1a; git clone https://github.com/Ryan-Miao/docker-yapi.git cd docker-yapi docker-compose upyapi启动失败 1.cd进入…

学习总结——JMeter做http接口功能测试

JMeter对各种类型接口的测试 默认做接口测试前&#xff0c;已经给出明确的接口文档&#xff08;如&#xff0c;http://test.nnzhp.cn/wiki/index.php?doc-view-59&#xff09;&#xff1b;本地配好了JMeter 3.x的运行环境&#xff1b; 打开JMeter&#xff0c;添加一个线程组…

【PDF技巧】网上下载的pdf文件怎么才能编辑

不知道大家有没有遇到过网上下载的PDF文件不能编辑的情况&#xff0c;今天我们来详细了解一下导致无法编辑的原因即解决方法有哪些。 第一种原因&#xff1a;PDF文件中的内容是否是图片&#xff0c;如果确认是图片文件&#xff0c;那么我们想要编辑&#xff0c;就可以先使用PD…

Sqlmap进行http头注入及流量分析

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 利用 SQLMap 进行 HTTP 头注入的方式对于 Less-19 注入点的注入 SQLMap 工具我使用kali中自带的 注入准备 先使用bp将Less-19靶场的包抓下来保存到 txt 文件中,输入账号 admin…

day56 日期类 集合

日期类&#xff1a; 获取毫秒值&#xff1a; 1970.1.1午夜之间的时间差 System.currentTimeMillis() java.util.Date&#xff1a; 获取当前时间 new Date(); 指定的格式显示日期&#xff1a; java.text.SimpeDateFormat 格式化(日期-》文本)和解析日期&#xff08;文本-》日期…

【leetcode】回文子串 动态规划

/*** param {string} s* return {number}*/ var countSubstrings function(s) {let dpnew Array(s.length).fill().map(()>new Array(s.length).fill(false));let num0;for(let i0;i<s.length;i){for(let j0;j<i;j){//在首尾相等时&#xff0c;如果长度时1或者2&…

浅谈XSS简单漏洞xss-labs-master(初级)

一、环境以及xss漏洞简介 网上很多gethub自己下就行 XSS简介&#xff1a; 当用户访问被XSS注入的网页&#xff0c;XSS代码就会被提取出来。用户浏览器就会解析这段XSS代码&#xff0c;也就是说用户被攻击了。 用户最简单的动作就是使用浏览器上网&#xff0c;并且浏览器中有J…

如何在阿里云申请沃通SSL证书

沃通CA已经与阿里云平台达成长期合作&#xff0c;沃通WoSign品牌SSL证书上线阿里云平台以来&#xff0c;成为阿里云平台热销的国产品牌证书。有SSL证书应用需求的阿里云用户&#xff0c;可直接在阿里云平台申请沃通WoSign SSL证书&#xff0c;快捷部署到已有的阿里云产品中。沃…

阿里云2核4G服务器租用价格85元一年,30元3个月

阿里云2核4G服务器多少钱一年&#xff1f;2核4G服务器1个月费用多少&#xff1f;2核4G服务器30元3个月、85元一年&#xff0c;轻量应用服务器2核4G4M带宽165元一年&#xff0c;本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1云服务器&#xff0c;阿里云服务…

uniapp:启动图 .9png 制作教程

1、工具安装&#xff1a;自行下载Android Studio 2、制作.9png 注意上图3条黑线的位置&#xff0c;意思是&#xff1a;标注黑线的位置可以进行缩放。 对其大多数启动图来说&#xff0c;标注以上3条黑线即可。

什么是Boot Guard?电脑启动中的信任链条解析

“无事可干”的黑客们早已经把目光从操作系统转移到固件上了&#xff0c;毕竟一旦攻破了固件的大门&#xff0c;那么在其上的操作系统也会门户洞开。现在电脑或者x86服务器系统中固件众多&#xff1a; UEFI在其中居于中间地位&#xff0c;它的安全性也是重中之重。我们在前文中…

element teble嵌套表单

以下代码是组件代码 并不是上图的代码 &#xff0c;只是大致功能是一样的&#xff0c;emm 主要是table列表里面嵌套form表单 并有添加校验&#xff0c; 其余功能代码是组件传参 或其他逻辑使用的未用到可不用 <template><div><el-form :rules"rules"…

2024.2.28 网络

思维导图 整理面试题 1、什么是回调函数 答&#xff1a;将函数作为参数传到另一个函数里面&#xff0c;当那个函数执行完之后&#xff0c;再执行传进去的这个函数。这个过程就叫做回调。 2、结构体和共用体的区别 答&#xff1a;结构体的每个成员都会分配内存&#xff0c;…