###### tags: `Leetcode` `easy` `tree` `python` `c++` `Top 100 Liked Questions`
# 226. Invert Binary Tree
## [題目連結:] https://leetcode.com/problems/invert-binary-tree/description/
## 題目:
Given the ```root``` of a binary tree, invert the tree, and return its root.


## 解題想法:
* 此題為反轉一個二元樹
* 遞迴處理即可
* root的左子樹為:遞迴原本root的右子
* root的右子樹為:遞迴原本root的左子
## Python:
``` python=
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return None
newLeft=self.invertTree(root.right)
newRight=self.invertTree(root.left)
root.left=newLeft
root.right=newRight
return root
```
## C++:
``` cpp=
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if (root==nullptr) return nullptr;
TreeNode* newLeft= invertTree(root->right);
TreeNode* newRight= invertTree(root->left);
root->left= newLeft;
root->right= newRight;
return root;
}
};
```