Loading

226. 翻转二叉树

226. 翻转二叉树

地址:https://leetcode-cn.com/problems/invert-binary-tree/

//翻转一棵二叉树。 
//
// 示例: 
//
// 输入: 
//
//      4
//   /   \
//  2     7
// / \   / \
//1   3 6   9 
//
// 输出: 
//
//      4
//   /   \
//  7     2
// / \   / \
//9   6 3   1 
//
// 备注: 
//这个问题是受到 Max Howell 的 原问题 启发的 : 
//
// 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 
// Related Topics 树 
// 👍 725 👎 0

解法一:层序遍历实现

class Solution {
    public TreeNode invertTree(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        if (root != null) {
            //入队
            queue.offer(root);
        }
        while (!queue.isEmpty()) {
            //出队
            TreeNode node = queue.poll();
            //交换左右树节点的位置
            TreeNode tmp = node.left;
            node.left = node.right;
            node.right = tmp;
            if (node.left != null) {
                queue.offer(node.left);
            }
            if (node.right != null) {
                queue.offer(node.right);
            }
        }
        return root;
    }
}

完!

posted @ 2021-01-04 17:22  sstu  阅读(71)  评论(0编辑  收藏  举报