226. 翻转二叉树(Python)

题目

难度:★☆☆☆☆
类型:二叉树

翻转一棵二叉树。

示例

输入:

     4
   /   \
  2     7
 / \   / \
1   3 6   9

输出:

     4
   /   \
  7     2
 / \   / \
9   6 3   1

解答

树的问题我们一般通过递归实现。翻转一棵树,需要进行以下步骤:

  1. 如果树为空,则直接返回这棵树;

  2. 交换根节点的左右子树;

  3. 对树的左右子树分别进行翻转,通过递归调用本函数实现。

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                                         # 返回翻转结束的二叉树的根结点

如有疑问或建议,欢迎评论区留言~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。