226、翻转二叉树

news2024/11/25 14:46:00

题目链接: \sf 题目链接: 题目链接:

图解:

在这里插入图片描述

方法一、 D F S \sf 方法一、DFS 方法一、DFS

递归:
让左子树是翻转后的右子树,
右子树是翻转后的左子树。

∴从叶结点开始,自底向上逐步翻转。递归出口是叶结点的下一层节点。

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if (!root) return nullptr;
        TreeNode* left = invertTree(root->left);
        TreeNode* right = invertTree(root->right);
        root->left = right;
        root->right = left;
        return root;
    }
};
另一种写法:
class Solution {
public:
    void invert(TreeNode* t)
    {
        if (!t) return;
        TreeNode* temp = t->left;
        t->left = t->right;
        t->right = temp;
        invert(t->left);
        invert(t->right);
    }
    TreeNode* invertTree(TreeNode* root) {
        if (!root) return nullptr;
        invert(root);      
        return root;
    }
};

方法二、 B F S \sf 方法二、BFS 方法二、BFS

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

注:
不能只是交换节点的数据值,而是要把整个节点进行交换。

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

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

相关文章

2023年中国超硬材料制品分析及超硬刀具市场规模分析[图]

超硬材料是指硬度特别高的材料&#xff0c;可分为天然以及人造两种&#xff0c;前者主要包括天然的钻石&#xff08;金刚石&#xff09;、黑钻石&#xff0c;后者则包括人造金刚石、立方氮化硼。 超硬材料制品分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#x…

轨迹规划 | 图解动态窗口算法DWA(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 动态障碍建模2 DWA基本原理2.1 采样窗口2.2 评价函数 3 DWA算法流程4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全局规划(…

文案配音软件哪个好?(适合新手使用)

随着短视频的逐渐普及&#xff0c;视频博主越来越多&#xff0c;所以很多朋友也期待成为视频博主。但是&#xff0c;如果你想成为一个有名的视频博主&#xff0c;你需要在很多层面上比别人做得更好。其中之一就是视频文字的配音。相信大部分人都没有配音的技巧&#xff0c;所以…

mybatis plus MetaObjectHandler 不生效

首先要知道,spring boot 只会加载启动类同级和下级的bean 如果把bean放在启动类不同的上级目录,是加载不了bean的 如果把mybatisplus的配置文件放在与启动类不同包,就会扫描不到 例如放在这里,就扫描不到 放到这里,就可以扫描到

部署云端SIEM解决方案的5个优势

随着组织迅速转向云端以利用云计算的优势&#xff0c;包括SIEM&#xff08;安全信息与事件管理&#xff09;在内的服务也正在向云端迁移。事实上&#xff0c;SIEM即服务正在迅速崭露头角&#xff0c;成为传统的本地SIEM解决方案的替代品。在Gartner的《采用SaaS SIEM前需回答的…

数学知识总结

素数 质数/素数定义 在大于1的整数中&#xff0c;如果只包含1和本身这两个约数&#xff0c;就被称为质数&#xff0c;或者叫素数 判断素数&#xff08;试除法&#xff09; 约数有一个重要的性质&#xff1a; 假设n代表数字&#xff0c;d代表n的一个约数 即d能整除n(d|n) 那么n…

visual studio安装时候修改共享组件、工具和SDK路径方法

安装了VsStudio后,如果自己修改了Shared路径&#xff0c;当卸载旧版本&#xff0c;需要安装新版本时发现&#xff0c;之前的Shared路径无法进行修改&#xff0c;这就很坑爹了&#xff0c;因为我运行flutter程序的时候&#xff0c;报错找不到windows sdk的位置&#xff0c;所以我…

Windows用VM虚拟机安装MacOS Ventura 13.6系统全流程教程(附资源)

安装成果&#xff1a; 所需容量&#xff1a;至少40GB的硬盘空间&#xff0c;推荐80GB以上。 所需资源 VMware虚拟机激活密钥&#xff1a;VMware Workstation Pro 17.0.2MacOS Ventura 13.6的ISO镜像MacOS的解锁工具卡顿优化工具&#xff1a;beamoff 有人反馈说需要能用的ISO镜…

mysql中特殊字符存储,如表情字符

一.问题&#xff1a;出现下面异常说明是不能存储特殊字符 ### Cause: java.sql.SQLException: Incorrect string value: \xF0\x9F\x98\x81 for column column1 at row 1 ; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect string value: \xF0\x…

UPS 原理和故障案例分享

摘要:不间断电源UPS (Uninterruptible Power System)&#xff0c;主要是由整流器、 逆变器、静态旁路和储能装置等组成;具备高可靠性、高可用性和高质量的独立 电源。通过对收集的 UPS 故障案例进行分析&#xff0c;从施工&#xff0c;调试和运行三个方面筛选 出四个故障案例与…

构建高效问题解答平台:使用Cpolar和Tipas在Ubuntu上搭建专属问答网站

文章目录 前言2.Tipask网站搭建2.1 Tipask网站下载和安装2.2 Tipask网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3 Cpolar稳定隧道&#xff08;本地设置&#xff09; 4. 公网访问测试5. 结语 前…

什么是实验室超声消泡机?工作原理是怎样的?

超声波消泡设备也叫超声波脱气机、超声波消泡机、超声波消泡器。超声波在液体中产生空化作用,使得液体中溶解的气体(如:空气)不断凝聚,成为很细小的气泡,最后成为球状气泡脱离液体表面&#xff0c;从而达到液体脱气、液体消泡的目的。 实验室超声消泡机工作原理&#xff1a; …

买了个Oppo Reno6用于测试

这一段时间开发摄像头APP&#xff0c;一直用手头的主力机。摄像头APP要求经常拔插&#xff0c;担心损坏。而手头的几个USB线似乎也有问题&#xff0c;经常连着电脑就断线。于是决定买个手机用于测试。 经过挑选买了个二手的RENO6&#xff0c;个头小&#xff0c;与手头的X70 PR…

Numpy(二) 元素与数组的操作

Numpy(二) 元素与数组的操作 一、元素的索引访问 1.一维数组索引访问 ①Numpy一维数组索引访问与python内置序列类型索引访问一样&#xff0c;都使用中括号下标&#xff08;[index]&#xff09; ②正值索引/负值索引 正值索引&#xff1a;0 1 2 3 4 5 a数组&#xff…

Android Studio Giraffe | 2022.3.1

Android Gradle 插件和 Android Studio 兼容性 Android Studio 构建系统以 Gradle 为基础&#xff0c;并且 Android Gradle 插件 (AGP) 添加了几项专用于构建 Android 应用的功能。下表列出了各个 Android Studio 版本所需的 AGP 版本。 如果您的项目不受某个特定版本的 Andr…

专业课138,总分390+,西工大,西北工业大学827信号与系统考研分享

数学一 考研数学其实严格意义上已经没有难度大小年之分了&#xff0c;说21年难的会说22年简单&#xff0c;说22年简单的做23年又会遭重&#xff0c;所以其实只是看出题人合不合你的口味罢了&#xff0c;建议同学不要因偶数年而畏惧&#xff0c;踏踏实实复习。资料方面跟谁就用…

实用的窗口管理软件:Display Maid for Mac

Display Maid 是一款用于 macOS 平台的窗口管理工具&#xff0c;它可以帮助用户更高效地管理和组织他们的应用程序窗口。Display Maid 提供了一系列功能和快捷键&#xff0c;使用户可以轻松地调整窗口的位置、大小和布局&#xff0c;以适应不同的工作环境和需求。 以下是 Disp…

基于Java的家庭食谱管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

ubuntu服务器启动报错UNEXPECTED INCONSISTENCY解决方法

遇到这种情况,按照出错提示来进行处理一般不会有问题,我这里尝试使用命令fsck修复出错的分区: 我使用的是&#xff1a;umount /dev/sdb3 然后提示卸载错误&#xff08;所以这一步不是到是否有用&#xff09; 修复: fsck -y /dev/sdb3 ,最后挂载分区上去:mount /dev/sdb3 /da…

基于ebpf的性能工具-bpftrace

在前面我已经分享了关于ebpf入门的文章&#xff1a;基于ubuntu22.04-深入浅出 eBPF。这篇文章介绍一个基于ebpf技术的强大工具–bpftrace。 在现代计算机系统中&#xff0c;了解系统的内部运行情况对于诊断问题、优化性能以及进行安全监控至关重要。bpftrace作为一款强大的跟踪…