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

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

前言

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

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

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

来一起学习一下吧。

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

总结

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

目录
相关文章
|
3月前
|
存储 算法
二叉树进阶-学会层序遍历助你一次刷完leetcode10道题
文章深入探讨了二叉树的层序遍历方法,并展示了如何通过队列实现层序遍历的算法逻辑,同时指出掌握层序遍历技巧可以帮助解决LeetCode上的多道相关题目。
二叉树进阶-学会层序遍历助你一次刷完leetcode10道题
|
5月前
|
算法
【数据结构与算法 经典例题】反转链表(图文详解)
【数据结构与算法 经典例题】反转链表(图文详解)
|
6月前
|
Java
JAVA数据结构刷题 -- 二叉树进阶
JAVA数据结构刷题 -- 二叉树进阶
44 0
|
6月前
|
机器人
[leedcode]刷题有感--动态规划入门及思路模板
[leedcode]刷题有感--动态规划入门及思路模板
|
6月前
|
存储 算法
刷题专栏(十一):二叉树的后序遍历
刷题专栏(十一):二叉树的后序遍历
57 0
|
6月前
|
存储 算法
刷题专栏(十四):二叉树的所有路径
刷题专栏(十四):二叉树的所有路径
73 0
|
6月前
|
算法
刷题专栏(十六):丑数
刷题专栏(十六):丑数
61 0
|
6月前
|
算法
刷题专栏(七):将有序数组转换为二叉搜索树
刷题专栏(七):将有序数组转换为二叉搜索树
66 0
|
6月前
|
算法
刷题专栏(九):二叉树的最小深度
刷题专栏(九):二叉树的最小深度
60 0
|
机器学习/深度学习 算法
2022 数据结构与算法《王道》学习笔记 (十二)树和二叉树 详细总结
2022 数据结构与算法《王道》学习笔记 (十二)树和二叉树 详细总结