[算法][力扣226]翻转一颗二叉树

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

方式一:递归,自底向上

java 复制代码
// 反转一颗二叉树: 使用递归的方式的实现 -- 自底向上
    public TreeNode invertTree(TreeNode root) {
        // 递归跳出条件
        if (root == null) {
            return root;
        }

        // 先反转左子树
        TreeNode leftNode = invertTree(root.left);

        // 再反转右子树
        TreeNode rightNode = invertTree(root.right);

        // 再反转当前节点左右子树
        root.left = rightNode;
        root.right = leftNode;

        return root;
    }

方式二:递归,自顶向下

java 复制代码
public TreeNode invertTree2(TreeNode root) {
        TreeNode temp = root;
        doInvertTree(temp);
        return root;
    }

    // 反转一颗二叉树: 使用递归的方式的实现,自顶向下
    public void doInvertTree(TreeNode root) {
        // 递归跳出条件
        if (root == null) {
            return;
        }

        // 反转当前节点左右子树
        TreeNode tempNode = root.left;
        root.left = root.right;
        root.right = tempNode;

        // 先反转左子树
        invertTree(root.left);

        // 再反转右子树
        invertTree(root.right);
    }
相关推荐
小O的算法实验室15 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
‎ദ്ദിᵔ.˛.ᵔ₎15 小时前
LIST 的相关知识
数据结构·list
M--Y15 小时前
Redis常用数据类型
数据结构·数据库·redis
郭涤生16 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿16 小时前
vector
c语言·开发语言·数据结构·c++·算法
Ricky111zzz16 小时前
leetcode学python记录1
python·算法·leetcode·职场和发展
汀、人工智能16 小时前
[特殊字符] 第58课:两个正序数组的中位数
数据结构·算法·数据库架构··数据流·两个正序数组的中位数
liu****16 小时前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
汀、人工智能16 小时前
[特殊字符] 第79课:分割等和子集
数据结构·算法·数据库架构·位运算·哈希表·分割等和子集
汀、人工智能16 小时前
[特殊字符] 第74课:完全平方数
数据结构·算法·数据库架构·图论·bfs·完全平方数