刷题专栏(十二):翻转二叉树

简介: 刷题专栏(十二):翻转二叉树

前言

刷题专栏到目前已经是第十二篇了,欢迎大家来关注我的刷题专栏,一起来刷题。

今天来看的这道题,没错,依然是二叉树的题目。

《翻转二叉树》,是一道简单类型的题目,也很容易理解。

来一起学习一下吧。

image.png

算法题:翻转二叉树

从题目的标题,我们就能看得出来,这是一道二叉树的题目。

而且可以知道,最后的结果就是要将给出的二叉树题目进行翻转后的新二叉树。

这里你可以是原来的二叉树的基础上进行改造,也可以是给一个新二叉树赋值。

接着我们想一下,二叉树应该如何处理呢?

如果你关注了我的刷题专栏,就会知道处理二叉树,肯定就是使用递归最容易了。

所以这里如果使用递归要如何处理呢。

这里给出我的思路。

首先可以先通过递归进行读取二叉树。

在读取二叉树的同时,将每个节点下的左右两个子节点进行调换。

这样就可以在原有二叉树的基础上完成改造。

最后也就返回原二叉树即可。

代码展示

代码执行如下,采用递归,在原二叉树基础上改造的方式。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (root == null) {
            return null;
        }
        TreeNode left = invertTree(root.left);
        TreeNode right = invertTree(root.right);
        root.left = right;
        root.right = left;
        return root;
    }
}

代码执行结果

今天的代码执行结果还是比较满意的,一般能达到这个成绩,就证明这个解法是妥当的。

image.png

总结

今天的这道题主要就是要理解题意,没有什么难度,只要你对二叉树有足够的了解,甚至是初步的了解,就可以解题成功。

目录
相关文章
|
6月前
|
Java
JAVA数据结构刷题 -- 二叉树进阶
JAVA数据结构刷题 -- 二叉树进阶
41 0
|
6月前
|
存储 算法
刷题专栏(十一):二叉树的后序遍历
刷题专栏(十一):二叉树的后序遍历
55 0
|
6月前
|
存储 算法
刷题专栏(十四):二叉树的所有路径
刷题专栏(十四):二叉树的所有路径
70 0
|
6月前
|
算法
刷题专栏(七):将有序数组转换为二叉搜索树
刷题专栏(七):将有序数组转换为二叉搜索树
64 0
|
6月前
|
算法
刷题专栏(十六):丑数
刷题专栏(十六):丑数
59 0
|
6月前
|
算法
刷题专栏(十五):各位相加
刷题专栏(十五):各位相加
53 0
|
6月前
|
算法
刷题专栏(九):二叉树的最小深度
刷题专栏(九):二叉树的最小深度
58 0
|
算法
牛客网《剑指offer》专栏刷题练习之二叉树合集
牛客网《剑指offer》专栏刷题练习之二叉树合集
86 1
|
存储 C++
二叉树题目合集
二叉树题目合集
51 0
|
算法 Cloud Native
【刷题日记】655. 输出二叉树
【刷题日记】655. 输出二叉树