---
# System prepended metadata

title: 226.Invert Binary Tree
tags: [Grind75]

---

226.Invert Binary Tree
===
[link](https://leetcode.com/problems/invert-binary-tree/description/)

想法:
這是一個遞迴的經典題目，主要是想每個root的左右來做調換，然後每個往上做，最後跑完即可。

解法:
先確認這顆tree不是Null。然後左右節點先來調換，然後再往下遞規，直到root下方沒有東西為止，然後他就會把值回傳來處理整棵樹。最後回傳root。

程式碼：
```
# 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 root is not None:
            root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
        return root 
```
