[算法][力扣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);
    }
相关推荐
TracyCoder1231 小时前
LeetCode Hot100(65/100)——64. 最小路径和
算法·leetcode·职场和发展
z2014z1 小时前
Deflate 算法详解
网络·算法
条tiao条2 小时前
从 “Top-K 问题” 入门二叉堆:C 语言从零实现与经典应用
c语言·算法·深度优先
uesowys2 小时前
华为OD算法开发指导-数据结构-图
数据结构·算法·华为od
实心儿儿2 小时前
算法3:链表分割
数据结构·算法·链表
Tisfy2 小时前
LeetCode 1415.长度为 n 的开心字符串中字典序第 k 小的字符串:DFS构造 / 数学O(n)
数学·算法·leetcode·深度优先·字符串·dfs·模拟
FriendshipT2 小时前
算法部署知识点:TensorRT、Tensorflow、Flask、Docker、TFLite
算法·docker·flask·tensorflow
进击的小头2 小时前
第7篇:基于传递函数的PI控制器设计
python·算法
TracyCoder1232 小时前
LeetCode Hot100(62/100)——62. 不同路径
算法·leetcode·职场和发展