【力扣】226.翻转二叉树

翻转一棵二叉树。

示例:

输入:
在这里插入图片描述

输出:
在这里插入图片描述

备注:
这个问题是受到 Max Howell 的 原问题 启发的 :

谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。
Related Topics

solution

class Solution {
    
    
    public TreeNode invertTree(TreeNode root) {
    
    
        //递归函数的终止条件,节点为空时返回
        if(root == null) {
    
    
            return null;
        }
        //下面三句是将当前节点的左右子树交换
        TreeNode tmp = root.right;
        root.right = root.left;
        root.left = tmp;
        //递归交换当前节点的 左子树
        invertTree(root.left);
        //递归交换当前节点的 右子树
        invertTree(root.right);
        //函数返回时就表示当前这个节点,以及它的左右子树
        //都已经交换完了
        return root;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_45251189/article/details/114059005