Invert a binary tree.
Example:
Input:
4 / \ 2 7 / \ / \ 1 3 6 9
Output:
4 / \ 7 2 / \ / \ 9 6 3 1
这一题其实就是一个递归的镜像反转,把右子树的节点给左边,左子树的节点给右边。记住需要自下而上的递归,这样才可以在不破坏上层节点结构的情况完成镜像反转。 给出代码如下
public TreeNode invertTree(TreeNode root) {
if (root == null) return null;
TreeNode left = invertTree(root.right);
TreeNode right = invertTree(root.left);
root.left = left;
root.right = right;
return root;
}