# Invert Binary Tree

## 问题描述

Invert a binary tree.

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

to

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

## Python

`# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = None​class Solution(object):    def invertTree(self, root):        """        :type root: TreeNode        :rtype: TreeNode        """        if root is None:            return        root.left, root.right = root.right, root.left        self.invertTree(root.left)        self.invertTree(root.right)        return root`

## Java

`public class Solution {    public TreeNode invertTree(TreeNode root) {        if (root == null)            return null;        TreeNode tmp = root.left;        root.left = root.right;        root.right = tmp;​        root.left = invertTree(root.left);        root.right = invertTree(root.right);        return root;    }}`

# Golang

`func InvertTree(root *TreeNode) {    if root == nil {        return    }​    root.Left, root.Right = root.Right, root.Left​    InvertTree(root.Left)    InvertTree(root.Right)}`