226. 翻转二叉树

news2025/7/13 15:03:01

文章目录

  • 1.题目
  • 2.示例
  • 3.答案
    • ①递归
    • ②迭代

1.题目

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

2.示例

在这里插入图片描述

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

3.答案

①递归

停止条件: 结点为空或者无孩子
递归内容: 左孩子翻转,右孩子翻转,左右孩子互换
返回值: 根节点

 TreeNode* invertTree(TreeNode* root) {
        if(!root) return root;   //空节点直接返回
        if(!root->left&&!root->right) return root;  //只有一个节点直接返回
         //递归
         TreeNode*l=invertTree(root->left);  //左孩子翻转
         TreeNode*r=invertTree(root->right);  //右孩子翻转
         root->left=r;  //交换左右孩子
         root->right=l;
         return root;
    }

②迭代

从上向下,一层一层遍历,不断交换每个结点的左右孩子,使用层次遍历,因为每个结点只经过一次。

TreeNode* invertTree(TreeNode* root) {
        if(!root) return root;   //空节点直接返回
        if(!root->left&&!root->right) return root;  //只有一个节点直接返回
		 //迭代实现
        ///交换每一层节点的左右孩子
        queue<TreeNode*> q;
        q.push(root);
        while(!q.empty()){
            TreeNode *node=q.front();  //取出队列头
            q.pop();
            TreeNode *tmp=node->left;  //交换左右孩子
            node->left=node->right;
            node->right=tmp;  
            if(node->left) q.push(node->left);
            if(node->right) q.push(node->right);
        }
        return root;
    }

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

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

相关文章

智慧应急解决方案-最新全套文件

智慧应急解决方案-最新全套文件一、建设背景二、建设思路应急管理信息化发展“四纵四横”总体架构1、两网络2、四体系3、两机制三、建设方案四、获取 - 智慧应急全套最新解决方案合集一、建设背景 建立应急大数据管理体系是应急管理信息化建设中的重要环节&#xff0c;决定了应…

将数组沿指定轴划分为子数组numpy.split()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将数组沿指定轴划分为子数组 numpy.split() [太阳]选择题 以下python代码输出错误的一项是? import numpy as np xnp.array([1,2,3,4,5,6,7,8,9,10,11,12]) print(【显示】x&#x…

数据库安装记录——Mysql8.0.23 msi 保姆级安装教程

今天遇到现场服务器安装数据库&#xff0c;特意记录安装过程。 本篇记录的服务器系统为&#xff1a;Windows Server 2012 R2 Standard 数据库版本为&#xff1a;Mysql8.0.23 msi 1、官网下载相应版本 2、安装过程 开端不顺&#xff0c;开始就出弹窗&#xff1a; 先插入一…

下载神器-IDM使用教程及下载

软件介绍&#xff1a; IDM是“Internet Download Manager”的简称&#xff0c;意思是“互联网下载管理器”&#xff0c;既是一类软件的统称&#xff0c;也专指一个非常知名的互联网下载器&#xff0c;这个软件的名字就叫IDM&#xff0c;被誉为地表最强下载器&#xff0c;屌丝救…

Flutter 中使用 extension 使项目更具可读性和效率 01

Flutter 中使用 extension 使项目更具可读性和效率 01 原文 https://medium.com/bedirhanssaglam/make-your-flutter-projects-more-readable-and-effective-with-extensions-b7dffd32e2f4 前言 代码的可读性和实用性在《 Flutter 》中非常重要。今天我们将编写一些 extension …

代码行覆盖率学习

【强力推荐】jacoco代码测试覆盖率实战教学全集&#xff0c;7天从入门到精通【理论实战 赶紧拿走】_哔哩哔哩_bilibili on-the-fly: 测试的时候代码是动态的, 需要测试就帮你插桩, 不测就不帮你插桩 offline: 先把被测代码拿到一次性直接插桩, 一运行桩就已经插好了, 直接生成…

如何把一个视频分割成不同时长的多个小视频

大家平时找素材是不是有点困难&#xff0c;如何把一个视频一个分割成多个不同时长的小视频呢&#xff0c;分割视频时能不能按我们需要来分割&#xff0c;今天小编带大伙来了解决下分割视频操作方法和步骤。 先来看下原来视频&#xff0c;原视频时长是比较长的 接下来我们准备一…

掌握这些 Spring Boot 启动扩展点,已经超过 90% 的人了!

1.背景 Spring的核心思想就是容器&#xff0c;当容器refresh的时候&#xff0c;外部看上去风平浪静&#xff0c;其实内部则是一片惊涛骇浪&#xff0c;汪洋一片。Springboot更是封装了Spring&#xff0c;遵循约定大于配置&#xff0c;加上自动装配的机制。很多时候我们只要引用…

Docker - Docker部署war包

使用Docker部署war项目&#xff0c;必须要用容器&#xff0c;我们就用tomcact容器&#xff0c;其实都是将war包丢到tomcat的webapps目录下&#xff0c;tomcat启动的情况下会自动解压war包 部署war包有两种方式 1、在Docker中安装tomcat容器的镜像&#xff0c;然后把war包丢到…

【无人机】模拟一群配备向下摄像头的移动空中代理覆盖平面区域(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

极速Go语言入门(超全超详细)-基础篇2

文章目录函数进阶结构体接口继承type值类型与引用类型值传递、引用传递打包、引用包工具类打包文件代码引用包代码方法异常捕捉处理字符串常用函数日期常用函数管道(channel)书接上篇&#xff1a;极速Go语言入门(超全超详细)-基础篇 整个基础篇合计32000字左右,如有遗漏可以私…

RDD—Transformation算子

Spark核心编程&#xff08;Spark Core&#xff09; 文章目录Spark核心编程&#xff08;Spark Core&#xff09;1. 了解RDD1.2 RDD五大特性1.3 WordCount案例分析2 RDD编程入门2.1 RDD的创建2.2 RDD算子2.3 常用Transformation 算子小案例&#xff08;客户端&#xff0c;集群&am…

Flutter高仿微信-第45篇-群聊-文本

Flutter高仿微信系列共59篇&#xff0c;从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图&#xff1a; 实现代码&#xff1a; 详情请参考Flutter高仿微信-第44篇-群聊&#xff0c; 这里…

Win10更新后卡在输入密码的界面

注意&#xff1a; 系统没问题时候建议创建还原点&#xff0c;以防万一&#xff1a; 创建还原点方法&#xff1a; 设置-系统-关于-系统保护-创建还原点。 下面介绍Win10更新后卡在输入密码的界面解决方法。 此时进不去系统&#xff0c;想进行还原点还原。 首先需要进入疑难解答…

安全分析能力的核心能力

核心能力 为了加快安全分析能力更全面、更深入的自动化 &#xff0c;SecXOps 的目标在于创建一个集成的用于 Security 的 XOps 实践&#xff0c;提升安全分析的场景覆盖率和运营效率。SecXOps 技术并不 015 SecXOps 技术体系 是 Ops 技术在安全领域的简单加和&#xff0c;SecXO…

第二章:线程基础知识复习

为什么要学好多线程如此重要? 硬件方面 摩尔定律 它是由英特尔创始人之一-Gordon Moore(戈登●摩尔)提出来的。其内容为: . 当价格不变时&#xff0c;集成电路上可容纳的元器件的数目约每隔18-24个月便会增加一倍&#xff0c;性能也将提升一倍。换言之&#xff0c;每一美元所…

力扣 36. 有效的数独 C语言实现

题目描述&#xff1a; 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参…

嵌入式驱动初级-阻塞与非阻塞

文章目录前言一、五种IO模型二、阻塞与非阻塞三、多路复用四、信号驱动前言 记录嵌入式驱动学习笔记 一、五种IO模型 当应用程序对设备驱动进行操作的时候&#xff0c;如果不能获取到设备资源&#xff0c;那么阻塞式 IO 就会将应用程 序对应的线程挂起&#xff0c;直到设备资源…

LeetCode刷题复盘笔记—一文搞懂纯0-1背包问题(动态规划系列第六篇)

今日主要总结一下动态规划背包问题的基础——纯0-1背包问题 在Leetcode题库中主要都是01背包和完全背包的应用问题&#xff0c;所以主要掌握这两个背包问题 题目&#xff1a;纯0-1背包问题 题目描述&#xff1a; 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是wei…

推特自动发帖,全天占据核心流量

利用热门趋势和Hashtags标签 Twitter有一个热门趋势&#xff0c;跟微博热搜是差不多的&#xff0c;卖家可以多关注一下热门趋势&#xff0c;看看有没有和产品相关的内容。在帖子中加入趋势性和热门的标签&#xff0c;是一种非常好的营销方式。 这一方面能够增加推文的热度&am…