Leetcode 226. 翻转二叉树

翻转一棵二叉树。

示例:

输入:

     4

   /   \

  2     7

 / \   / \

1   3 6   9

输出:

     4

   /   \

  7     2

 / \   / \

9   6 3   1

备注:

这个问题是受到 Max Howell 原问题 启发的 :

谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。

**难度**: Easy

**标签**: 树、


# -*- coding: utf-8 -*-
# @Author  : LG

"""
执行用时:36 ms, 在所有 Python3 提交中击败了89.80% 的用户
内存消耗:13.5 MB, 在所有 Python3 提交中击败了6.61% 的用户

解题思路:
    递归,翻转二叉树左右子树即可
"""
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def invertTree(self, root: TreeNode) -> TreeNode:
        def invert(root):
            if root:
                root.left, root.right = root.right, root.left

                invert(root.left)
                invert(root.right)
        invert(root)
        return root