力扣226. 翻转二叉树(DFS的两种思路)
Problem: 226. 翻转二叉树
文章目录
- 题目描述
- 思路
- 复杂度
- Code
题目描述
思路
涉及二叉树的递归解法时往往需要考虑两种思路:
1.在递归遍历时执行题目需要的具体要求;
2.将一个大问题分解为多个小子问题
具体到本体:
思路1:遍历
先序遍历+基本的交换操作
思路2:问题分解
将翻转一棵二叉树分解为翻转根节点的左右子树,再分解为翻转左右子树的左右子树…一直分解到叶子节点时,再在回退的过程中执行交换操作,即需要利用到二叉树的后序遍历
复杂度
思路1:
时间复杂度:
O ( n ) O(n) O(n);其中 n n n为二叉树节点的个数
空间复杂度:
O ( n ) O(n) O(n)
思路2:
时间复杂度:
O ( n ) O(n) O(n)
空间复杂度:
O ( n ) O(n) O(n)
Code
思路1:
class Solution {/*** Invert Binary Tree(Recursive traversal)** @param root The root node of binary tree* @return TreeNode*/public TreeNode invertTree(TreeNode root) {if (root == null) {return null;}traverse(root);return root;}/*** Recursive implementation function** @param root The root node of binary tree*/private void traverse(TreeNode root) {if (root == null) {return;}TreeNode temp = root.left;root.left = root.right;root.right = temp;traverse(root.left);traverse(root.right);}
}
思路2:
class Solution {/*** Invert Binary Tree(Break down the problem)** @param root The root node of binary tree* @return TreeNode*/public TreeNode invertTree(TreeNode root) {if (root == null) {return null;}TreeNode leftNode = invertTree(root.left);TreeNode rightNode = invertTree(root.right);root.left = rightNode;root.right = leftNode;return root;}
}
相关文章:

力扣226. 翻转二叉树(DFS的两种思路)
Problem: 226. 翻转二叉树 文章目录 题目描述思路复杂度Code 题目描述 思路 涉及二叉树的递归解法时往往需要考虑两种思路: 1.在递归遍历时执行题目需要的具体要求; 2.将一个大问题分解为多个小子问题 具体到本体: 思路1:遍历 先…...

状态机-非重叠的序列检测
描述 设计一个状态机,用来检测序列 10111,要求: 1、进行非重叠检测 即101110111 只会被检测通过一次 2、寄存器输出且同步输出结果 注意rst为低电平复位 信号示意图: 波形示意图: 输入描述 输入信号 clk rst data…...

Word怎么画图?这5个方法收藏好!
“我需要在Word文档中画一些图,想问下Word应该怎么画图呢?有没有朋友可以帮我看看怎么操作呢?” 在今天的数字化时代,信息爆炸式增长,人们越来越需要高效、直观地传递和接收信息。而Word画图功能正是这一需求的完美体现…...
qt designer 依赖库 QMessageBox
目录 qt designer 依赖库配置实例 单步调试快捷键 f10 QMessageBox 使用方法 背景图设置...

反序列化漏洞(JBoss、apache log4、apache Shiro、JWT)Weblogic未授权访问、代码执行、任意上传
1.1什么是反序列化 就是把一个对象变成可以传输的字符串,目的就是为了方便传输。假设,我们写了一个class,这个class里面存有一些变量。当这个class被实例化了之后,在使用过程中里面的一些变量值发生了改变。以后在某些时候还会用到…...
PHP身份证真伪验证、身份证二、三要素核验、身份证ocr接口
实名认证有利于网络绿化,所以在互联网发展迅速的今天,实名认证成了“刚需”。而OCR与实名认证两种产品的结和更是擦出了美丽的火花。翔云人工智能开放平台提供的实名认证OCR接口良好的展现出两种功能结合的效果。以身份实名认证产品举例来说,…...

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout
博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 布局管理器 | 表单布局Form Layout 文章编号:…...

数智赋能内涝治理,四信城市排水防涝解决方案保障城市安全运行
由强降雨、台风造成城市低洼处出现大量积水、内涝的情况时有发生,给人们出行带来了极大不便和安全隐患,甚至危及群众生命财产安全。 为降低内涝造成的损失,一方面我们要大力加强城市排水基础设施的建设;另一方面要全面掌握城市内涝…...

docker实战之搭建MYSQL8.0主从同步
目录 环境配置容器创建主服务器创建MYSQL容器新增my.cnf文件创建用户并授权 从服务器创建MYSQL容器新增my.cnf文件重启MYSQL容器配置主从同步 验证主从同步彩蛋 MySQL 主从同步(Master-Slave Replication)是一种常用的解决方案,它允许一个主服…...

LTD275次升级 | 网页编辑器新增AI翻译 • 文章|产品等内容可导出 • 新增交互数据 • 购物清单可导出• 官微中心app出新版
1、 网站编辑器文本组件可一键翻译; 2、 文章、产品新增导出功能; 3、 购物车新增导出购物清单功能; 4、 App优化首页数据展示、新增访客交互数据功能; 5、 已知问题修复与优化; 01 网站编辑器 新增文本组件一键翻…...

代码随想录算法训练营第36期DAY36
贪心好难,希望能坚持到柳暗花明那天。 DAY36 1005K次取反后最大化的数组和 自己的方法,注意越界条件放在最前面就好: class Solution {public: int largestSumAfterKNegations(vector<int>& nums, int k) { //自己的…...

zookeeper安装教程
前置环境: hadoop3.3.6 三台集群 CentOS7 (图文并茂)基于CentOS-7搭建hadoop3.3.6大数据集群-CSDN博客 1.下载并上传 下载并上传ZOOKEEPER安装包到主节点 官网下载地址 Index of /dist/zookeeper (apache.org) 切换到/opt/bigdata目录(根据自己的情况…...

windows2008修改远程桌面端口,如何果断修改远程桌面端口,确保系统安全无忧!
在数字化时代的浪潮中,Windows 2008系统以其卓越的稳定性和可靠性,赢得了众多企业和个人的青睐。然而,随着网络安全问题的日益严峻,如何确保远程桌面连接的安全,成为了摆在我们面前的一道难题。今天,我将为…...

【计算机网络原理】对传输层TCP协议的重点知识的总结
˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…...
mysql实战——半同步复制搭建
一、搭建前准备 主库 192.168.1.78 从库 192.168.1.76 二、搭建 1、先搭建异步复制 MySQL实战——主从异步复制搭建(一主一从)-CSDN博客 2、在异步的基础上搭建半同步复制 主库 mysql>install plugin rpl_semi_sync_slave soname semisy…...
Leetcode 3152. Special Array II
Leetcode 3152. Special Array II 1. 解题思路2. 代码实现 题目链接:3152. Special Array II 1. 解题思路 这一题的话思路上就是分堆,使用贪婪算法找到每一个元素所在的最长special子序列,然后判断query的首尾元素是不是属于同一个special…...

人工智能与区块链技术:开启未来科技的双引擎
在当今科技飞速发展的时代,人工智能和区块链技术如同两颗璀璨的明星,照亮了人类通往未来的道路。 人工智能,以其强大的学习和分析能力,正悄然改变着我们的生活。它能够处理海量的数据,为我们提供精准的预测和个性化的…...

Python筑基之旅-MySQL数据库(二)
目录 一、第三方库 1、mysql-connector-python 1-1、由来 1-2、优缺点 1-2-1、优点 1-2-1-1、官方支持 1-2-1-2、纯Python实现 1-2-1-3、全面支持 1-2-1-4、兼容性 1-2-1-5、易于使用 1-2-2、缺点 1-2-2-1、性能 1-2-2-2、安装 1-2-2-3、社区支持 1-2-2-4、扩…...
web前端面试题
web前端面试题 1、前端如何实现优化性能 (1)减少网络时间 ①使用DNS缓存技术 ②减少需要传输的文件尺寸 ③加快文件传输速度 (2)减少发送的请求数量 ①利用浏览器缓存 ②使用合并的图片文件 (3)提高浏览器下载的并发度 ①JS文件放在HTML文档最后 ②使用多个域名 (…...

创建型模式之单例
文章目录 概述定义场景小结 概述 设计模式包括创建型模式,结构型模式,行为型模式。 今天先看看创建型模式,而单例是创建型模式中的第一个而且是常用的,就从它开始吧。 定义 单例模式用来创建全局唯一的对象。一个类只允许创建一…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...
深入解析 ReentrantLock:原理、公平锁与非公平锁的较量
ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...
前端打包工具简单介绍
前端打包工具简单介绍 一、Webpack 架构与插件机制 1. Webpack 架构核心组成 Entry(入口) 指定应用的起点文件,比如 src/index.js。 Module(模块) Webpack 把项目当作模块图,模块可以是 JS、CSS、图片等…...