题目
难度:★☆☆☆☆
类型:二叉树
翻转一棵二叉树。
示例
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
解答
树的问题我们一般通过递归实现。翻转一棵树,需要进行以下步骤:
如果树为空,则直接返回这棵树;
交换根节点的左右子树;
对树的左右子树分别进行翻转,通过递归调用本函数实现。
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if root: # 如果输入不为空树
root.left, root.right = root.right, root.left # 左右子树互换
self.invertTree(root.left) # 翻转左子树
self.invertTree(root.right) # 翻转右子树
return root # 返回翻转结束的二叉树的根结点
如有疑问或建议,欢迎评论区留言~