leetcode 226. Invert Binary Tree 翻转二叉树(简单)

一、题目大意

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

示例 1:

leetcode 226. Invert Binary Tree 翻转二叉树(简单)

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

示例 2:

leetcode 226. Invert Binary Tree 翻转二叉树(简单)

输入:root = [2,1,3]
输出:[2,3,1]

示例 3:

输入:root = []
输出:[]

提示:

  • 树中节点数目范围在 [0, 100] 内
  • -100

来源:力扣(LeetCode
链接:https://leetcode.cn/problems/invert-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、解题思路

翻转二叉树是树的基本操作之一,可以使用递归和非递归两种方法。递归方法:交换当前左右节点,并直接调用递归即可。非递归方法:跟二叉树的层序遍历一样,需要用queue画辅助,先把根节点排入队列中,然后从队列中取出来,交换其左右节点,如果存在则分别将左右节点再排入队列中,以此类推直到队列中没有节点了

三、解题方法

3.1 Java实现-递归

public class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (root == null) {
            return root;
        }
        TreeNode tmp = root.left;
        root.left = invertTree(root.right);
        root.right = invertTree(tmp);
        return root;
    }
}

3.2 Java实现-非递归

public class Solution2 {
    public TreeNode invertTree(TreeNode root) {
        if (root == null) {
            return root;
        }
        Deque q = new ArrayDeque<>();
        q.push(root);
        while (!q.isEmpty()) {
            TreeNode node = q.pop();
            TreeNode tmp = node.left;
            node.left = node.right;
            node.right = tmp;
            if (node.left != null) {
                q.push(node.left);
            }
            if (node.right != null) {
                q.push(node.right);
            }
        }
        return root;
    }
}

四、总结小记

  • 2022/9/29 在你成为领导者之前,成功的全部就是自我的成长;当你成了领导者,成功的全部就变成帮助他人成长。—通用电气CEO 杰克 · 韦尔奇《商业的本质》

Original: https://www.cnblogs.com/okokabcd/p/16743338.html
Author: okokabcd
Title: leetcode 226. Invert Binary Tree 翻转二叉树(简单)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620666/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 用户后台管理

    User Management 这是通过SpringBoot完成的用户后台管理系统 一些解释说明也在代码里面, 源码及资源 会放在文末哦!!! – 这是效果图 大概就这…

    数据库 2023年6月16日
    0114
  • MySQL启动过程详解三:Innodb存储引擎的启动

    Innodb启动过程如下: 初始化innobase_hton,它是一个handlerton类型的指针,以便在server层能够调用存储引擎的接口。 Innodb相关参数的检车和初始…

    数据库 2023年6月9日
    094
  • 0812Java核心技术卷(1)随笔

    自增运算符与自减运算符 这些运算符改变了变量的值,所以它的操作数不能是数值。例如4++就是一条非法语句不建议在其他表达式内部使用++,因为这样会降低代码可读性,产生bug Orig…

    数据库 2023年6月14日
    099
  • mybatisplus不支持sum,但支持这个

    我们知道,要对数据求和,写sql很简单:select sum(exp) from table_name我们在用mybatisplus做求和计算的时候,mybatisplus的Wra…

    数据库 2023年6月9日
    0234
  • 初入Android——基础控件学习

    Android开发离不开控件,这篇随笔就是我自己用来记录学习Android控件知识的!!! 一、TextView TextView是Android UI 控件(文本框控件) 基础属…

    数据库 2023年6月11日
    087
  • mysql解压版简洁式本地配置方式

    1. 设置全局变量 解压mysql压缩包到指定位置, 然后配置全局变量, 在 path 中添加全局变量, 值为 mysql 根目录下 bin 目录路径, 比如: D:\code_s…

    数据库 2023年6月14日
    073
  • [springmvc]乱码问题解决以及JSON和java对象转换的几种方法

    在web服务器配置中直接加上下面的过滤处理 encoding org.springframework.web.filter.CharacterEncodingFilter enco…

    数据库 2023年6月16日
    076
  • html简单学习!

    博主学习html的随记 1.常用标签 1.基础标签 2.格式标签 3.表单 4.超文本标签 5.列表 6.表格 7.样式 8.特殊符号 9.内联框架(网页嵌套) 1.常用标签 1….

    数据库 2023年6月16日
    096
  • 时序数据库InfluxDB的基本语法

    一 了解InfluxDB的必要性 Time series data is a series of data points each associated with a specif…

    数据库 2023年6月16日
    097
  • http状态码总结

    表示临时响应并需要请求者继续执行操作的状态代码。 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101 (切换协议) 请求…

    数据库 2023年6月6日
    064
  • Node安装与卸载命令汇总

    nvm(MAC管理node版本) 安装最新稳定版node: nvm install stable 安装指定版本: nvm install <version></v…

    数据库 2023年6月9日
    065
  • Dubbo源码(五)-服务目录

    前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 今天,来聊聊Dubbo的 服务目录(Directory)。下面是官方文档对服…

    数据库 2023年6月11日
    0102
  • java中如何在ISO-8859-1和UTF-8之间相互转换呢?

    我们都知道在一些特殊的场景,我们需采用特殊的编码格式,如:UTF-8,但是系统默认的编码为ISO-8859-1 那么我们就需要将编码转换为我们所需的编码格式, 今天我就遇到这个问题…

    数据库 2023年6月11日
    077
  • MySQL函数学习(一)—–字符串函数

    注:笔记旨在记录 一、MySQL 字符串函数 \ 函 数 名 称 作 用 完 成 1 LENGTH 计算字符串长度 勾 2 CONCAT 字符串拼接,返回结果为连接参数产生的字符串…

    数据库 2023年6月16日
    077
  • sql 优化

    对比 select * from A t1 left join B t2 on ( t1.c1 = t2.c1 or t1.c1=t2.c2) select * from A t1…

    数据库 2023年6月16日
    076
  • [LeetCode]剑指 Offer 17. 打印从1到最大的n位数

    输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n = 1输出: [1,2,3…

    数据库 2023年6月9日
    089
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球