# 翻转一棵二叉树。
#
# 示例:
#
# 输入:
#
# 4
# / \
# 2 7
# / \ / \
# 1 3 6 9
#
# 输出:
#
# 4
# / \
# 7 2
# / \ / \
# 9 6 3 1
#
# 备注:
# 这个问题是受到 Max Howell 的 原问题 启发的 :
#
# 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。
# Related Topics 树 深度优先搜索 广度优先搜索 二叉树 👍 1041 👎 0
# leetcode submit region begin(Prohibit modification and deletion)
# 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:
if root is None:
return None
# 反转左子树作为新右子树
new_right = self.invertTree(root.left)
# 反转右子树作为新左子树
new_left = self.invertTree(root.right)
root.left, root.right = new_left, new_right
return root
# leetcode submit region end(Prohibit modification and deletion)