翻转二叉树
Invert Binary Tree
本机进度仅保存在当前浏览器
题目描述
给你一棵二叉树的根节点 root,翻转这棵二叉树,并返回其根节点(每个节点的左右子树互换)。
示例:[4, 2, 7, 1, 3, 6, 9] 翻转后为 [4, 7, 2, 9, 6, 3, 1]。
解题思路
- 递归定义同样直白:翻转当前树 = 交换左右孩子后分别翻转左右子树。
- 先交换还是先递归都可以,递归基是空节点返回 None。
参考实现
查看参考实现Python · 建议先自行作答
def invertTree(root):
# 交换左右孩子,再递归翻转左右子树
if not root:
return None
root.left, root.right = invertTree(root.right), invertTree(root.left)
return root