https://leetcode.cn/problems/invert-binary-tree/
需要注意的点

  1. 递归到子节点, 从子节点开始翻转
  2. 翻转节点左右节点,递归处理左节点,然后递归右节点

    1. # Definition for a binary tree node.
    2. # class TreeNode:
    3. # def __init__(self, val=0, left=None, right=None):
    4. # self.val = val
    5. # self.left = left
    6. # self.right = right
    7. class Solution:
    8. def invertTree(self, root: TreeNode) -> TreeNode:
    9. if not root:
    10. return root
    11. left = self.invertTree(root.left)
    12. right = self.invertTree(root.right)
    13. root.left = right
    14. root.right = left
    15. return root

    ```python

    Definition for a binary tree node.

    class TreeNode:

    def init(self, val=0, left=None, right=None):

    self.val = val

    self.left = left

    self.right = right

    class Solution: def invertTree(self, root: TreeNode) -> TreeNode:

  1. def traverse(node: TreeNode) -> TreeNode:
  2. if not node:
  3. return
  4. tmp = node.right
  5. node.right = node.left
  6. node.left = tmp
  7. traverse(node.left)
  8. traverse(node.right)
  9. traverse(root)
  10. return root

```