导航
导航
文章目录
  1. 题目
  2. 翻译

LeetCode-226.Invert Binary Tree

题目

Invert a binary tree.

    4
   /  \
  2    7
 / \   /  \
1   3 6   9

To

    4
   /  \
  7    2
 / \   /  \
9   6 3   1

翻译

反转一颗二叉树。
    4
   /  \
  2    7
 / \   /  \
1   3 6   9

    4
   /  \
  7    2
 / \   /  \
9   6 3   1

题目中标注了本题的灵感来自于 Max Howell(https://twitter.com/mxcl) 的一条 twitter(https://twitter.com/mxcl/status/608682016205344768):
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
(Google:我们90%的工程师都用你写的软件(Homebrew),但你不能在白板上反转一颗二叉树,所以滚蛋吧。)
很严重的样子……

其实就是遍历二叉树,在遍历过程中,顺便把左右子节点交换位置即可。
递归:

1
2
3
4
5
6
7
8
public TreeNode invertTree(TreeNode root) {
if (root == null)
return root;
TreeNode tmp = invertTree(root.left);
root.left = invertTree(root.right);
root.right = tmp;
return root;
}