翻转一棵二叉树。
示例:
输入:
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