LeetCode Top100: 翻转二叉树(python)

发布时间 2023-04-18 22:56:03作者: 华东博客

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

 

示例 1:

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

示例 2:

输入:root = [2,1,3]
输出:[2,3,1]

示例 3:

输入:root = []
输出:[]

 

提示:

  • 树中节点数目范围在 [0, 100] 内
  • -100 <= Node.val <= 100

实现:

以下是 Python代码实现:

class Solution:
    def invertTree(self, root: TreeNode) -> TreeNode:
        if root is None:
            return None
        
        # 交换左右子树
        root.left, root.right = root.right, root.left
        
        # 递归翻转左右子树
        self.invertTree(root.left)
        self.invertTree(root.right)
        
        return root

 以上代码使用了递归的思想,首先判断当前节点是否为空,如果为空则返回 None。否则,交换当前节点的左右子树,然后递归调用 invertTree 函数翻转左右子树。最后返回当前节点作为新的根节点。