LeetCode 刷题 [C++] 第226题.翻转二叉树

题目描述

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
在这里插入图片描述

题目分析

深度优先搜索(DFS)- 递归方式

  1. 对于二叉树的镜像问题,很容易想到的就是使用递归来解决,自底向上依次翻转每一个节点的左右子节点,即深度优先搜索(DFS);
  2. 需要注意的是在交换节点时,需要一个临时变量来辅助交换过程。

Code

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (nullptr == root) {return nullptr;}TreeNode* temp = root->left;root->left = invertTree(root->right);root->right = invertTree(temp);return root;}
};

广度优先搜索(BFS)- 辅助队列方式

  1. 根据题意分析,可以转换成一个层序遍历二叉树的问题,使用队列的先入先出特性实现,来对每一层的节点进行镜像,即二叉树的广度优先搜索(BFS);
  2. 对于每一层的处理:交换当前层每个节点的左右子节点,并把当前层节点的所有子节点保存到队列中。循环执行该操作,直至结束。

Code

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (nullptr == root) {return nullptr;}queue<TreeNode*> que_node;que_node.push(root);while (!que_node.empty()) {TreeNode* cur_node = que_node.front();que_node.pop();swap(cur_node->left, cur_node->right);if (nullptr != cur_node->left) {que_node.push(cur_node->left);}if (nullptr != cur_node->right) {que_node.push(cur_node->right);}}return root;}
};

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

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

相关文章

2024年腾讯云优惠券领取页面_代金券使用方法_新老用户均可

腾讯云代金券领取渠道有哪些&#xff1f;腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券&#xff0c;大家也可以在腾讯云百科蹲守代金券&#xff0c;因为腾讯云代金券领取渠道比较分散&#xff0c;腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

『大模型笔记』Sora:探索大型视觉模型的前世今生、技术内核及未来趋势

Sora:探索大型视觉模型的前世今生、技术内核及未来趋势 文章目录 一. 摘要二. 引言杨立昆推荐的关于世界模型的真正含义(或应该是什么)的好文章。原文:Sora: A Review on Background, Technology, Limitations, and Opportunities of Large Vision Models译文:Sora探索大型…

百度SEO快排原理是什么?如何快速排名方法?

前言&#xff1a;我之前说过我不打算写这个快速排序。 首先&#xff0c;我从来没有在自己的网站上操作过所谓的快速排序。 其次&#xff0c;我不能像网上很多人写的那样透露百度快速排序的秘密&#xff08;说实话&#xff0c;你可以透露秘密&#xff09;。 方法是有了&#xff…

Linux系统运维脚本:编写bash脚本程序监控服务器的磁盘空间,在磁盘使用率超过阈值时发送警告邮件

目 录 一、要求 二、解决方案 &#xff08;一&#xff09;解决思路 &#xff08;二&#xff09;方案 三、脚本程序实现 &#xff08;一&#xff09;脚本代码和解释 1、脚本代码 2、代码解释 &#xff08;二&#xff09;脚本验证 1、脚本编辑 2、给予执…

使用递归求解数组最大值(c++题解)

题目描述 输入一个整数n&#xff08;n不大于1000&#xff09;&#xff0c;接下来分别为n个整数&#xff0c;请使用递归求取最大值。 输入格式 第一行&#xff1a;正整数n。 第二行&#xff1a;n个整数。 输出格式 输出最大值 样例 样例输入 复制2 1 2样例输出 复制2 …

Postman: 前端必备工具还是后端独享利器

Postman 的使用场景&#xff1a;适用于前端和后端 Postman 是一个流行的 API 测试与开发工具。它被广泛地应用在前后端开发的过程中&#xff0c;但是很多人对于它的使用场景存在疑惑。那么&#xff0c;到底是前端用还是后端用呢&#xff1f;本文将从多个角度详细解答这个问题。…

Node.js_基础知识(CommonJS模块化)

CommonJS模块化规范 加载时机&#xff1a; 服务器端: 模块的加载是运行时同步加载的&#xff0c;node.js实现了模块化规范浏览器端: 模块需要提前编译打包处理&#xff0c;需使用Browserify编译打包&#xff0c;推荐使用ESM 暴露模块&#xff1a;module.exports、exports导入模…

“а”搭配使用更地道,柯桥外贸俄语培训

1、а именно 就是说&#xff0c;就是&#xff0c;正是 例&#xff1a; в то время, а именно год назад. 那时, 也就是一年前。 не кто иной, а именно г-н Ван. 不是别人&#xff0c;就是王先生 2、а наоборот …

【嵌入式——QT】QListWidget

QListWidget类提供了一个基于项的列表小部件&#xff0c;QListWidgetItem是列表中的项&#xff0c;该篇文章中涉及到的功能有添加列表项&#xff0c;插入列表项&#xff0c;删除列表项&#xff0c;清空列表&#xff0c;向上移动列表项&#xff0c;向下移动列表项。 常用API a…

C语言数据结构基础——双链表专题

前言 书接上回&#xff0c;双链表便是集齐带头、双向、循环等几乎所有元素的单链表PLUS. 1.初始化、创建双链表 typedef int LTDataType; typedef struct LTNode {LTDataType data;struct LTNode* next;struct LTNode* prev; }LTNode; 不同于单链表&#xff0c;此时每个节点应…

selenium初始学习--打开新标签操作

selenium 打开新标签操作 简单说一下使用 环境 &#xff1a;python 3.9 selenium 4,18 初始化操作 目的 打开bilibilie网站并搜索视频&#xff08;电影&#xff09; 并点击观看 操作 打开应用并搜索网址 from selenium import webdriver import timefrom selenium.webdr…

PySide6+VSCode Python可视化环境搭建

#记住在cmd中运行&#xff0c;不要在vscode里运行&#xff0c;否则env会装到工程目录下 python -m venv env #env\Scripts\activate.bat pip install pyside6 下载本期源码 vscode装一个PYQT Integration插件&#xff0c;设置好两个路径&#xff08;下面有个脚本用于获取路径&…

MySQL 数据库表设计和优化

一、数据结构设计 正确的数据结构设计对数据库的性能是非常重要的。 在设计数据表时&#xff0c;尽量遵循一下几点&#xff1a; 将数据分解为合适的表&#xff0c;每个表都应该有清晰定义的目的&#xff0c;避免将过多的数据存储在单个表中。使用适当的数据类型来存储数据&…

2020小学甲组--恢复数组

题目描述 有一个数组a[1..n]&#xff0c;但是这个数组的内容丢失了&#xff0c;你要尝试恢复它。已知以下的三个事实&#xff1a; 1、对于1<i<n&#xff0c;都有a[i]>0&#xff0c;且所有的a[i]互不相同。即a数组保存的全部都是正整数&#xff0c;且互不相同。 2、…

挑战杯 基于机器视觉的车道线检测

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分…

范伟:你们怎么老提1,200呢,有什么典故啊?赵本山:没有啊!

范伟&#xff1a;你们怎么老提1,200呢,有什么典故啊?赵本山&#xff1a;没有啊&#xff01; --小品《面子》&#xff08;中3&#xff09;的台词 表演者&#xff1a;赵本山 高秀敏 范伟 &#xff08;接上&#xff09; 范伟&#xff1a;哎吃啊 赵&#xff1a;哎呀这电视看的挺…

Acwing枚举、模拟与排序(一)

连号区间数 原题链接&#xff1a;https://www.acwing.com/problem/content/1212/ 初始最小值和最大值的依据是题目给出的数据范围。只要在数据范围之外就可以。 连号的时候&#xff0c;相邻元素元素之间&#xff0c;差值为1。那么区间右边界和左边界&#xff0c;的值的差&#…

cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台

cAdvisorPrometheusGrafana cAdvisorPrometheusGrafana 搞定Docker容器监控平台1、先给虚拟机上传cadvisor2、What is Prometheus?2.1、架构图 3、利用docker安装普罗米修斯4、安装grafana cAdvisorPrometheusGrafana 搞定Docker容器监控平台 1、先给虚拟机上传cadvisor cAd…

MySQL事务和锁机制

MySQL技术——事务和锁机制 一、事务&#xff08;1&#xff09;概述&#xff08;2&#xff09;ACID特性&#xff08;3&#xff09;事务并发存在的问题&#xff08;4&#xff09;事务的隔离级别 二、锁机制&#xff08;1&#xff09;锁的力度&#xff08;2&#xff09;表的分类&…

网络编程-编码与解码(Protobuf)

编码与解码 下面的文字都来自于极客时间 为什么要编解码呢&#xff1f;因为计算机数据传输的是二进制的字节数据 解码&#xff1a;字节数据 --> 字符串&#xff08;字符数据&#xff09; 编码&#xff1a;字符串&#xff08;字符数据&#xff09;–> 字节数据 我们在编…