相似题目:
- 【LeetCode】572. 另一个树的子树
- 【LeetCode】104. 二叉树的最大深度【简单】
- 【LeetCode】110. 平衡二叉树
- 【LeetCode】297. 二叉树的序列化与反序列化【困难】
- 【LeetCode】二叉树各种遍历大汇总(秒杀前序、中序、后序、层序)递归 & 迭代
- 【LeetCode】235. 二叉搜索树的最近公共祖先
1. 题目描述
翻转一棵二叉树。
示例:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
2. 解题代码
# 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:
if not root:
return root
root.left, root.right = root.right, root.left # 把根节点的左右孩子翻转
self.invertTree(root.left) # 递归地翻转左孩子的左孩子
self.invertTree(root.right) # 递归地翻转左孩子的右孩子
return root