给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
例:
输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]
解析:
递归,从底层开始判断,如果没到叶子节点,则一直递归到叶子节点,然后层层向上翻转即可。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if root is None: # 递归终止判断
return
self.invertTree(root.left) # 左子树递归
self.invertTree(root.right) # 右子树递归
root.left, root.right = root.right, root.left # 左右字树翻转
return root # 返回根节点