LC 226二叉树简单第 47 / 95 题

翻转二叉树

Invert Binary Tree

递归镜像
本机进度仅保存在当前浏览器

题目描述

给你一棵二叉树的根节点 root,翻转这棵二叉树,并返回其根节点(每个节点的左右子树互换)。

示例:[4, 2, 7, 1, 3, 6, 9] 翻转后为 [4, 7, 2, 9, 6, 3, 1]。

解题思路

  1. 递归定义同样直白:翻转当前树 = 交换左右孩子后分别翻转左右子树。
  2. 先交换还是先递归都可以,递归基是空节点返回 None。

参考实现

查看参考实现Python · 建议先自行作答
def invertTree(root):
    # 交换左右孩子,再递归翻转左右子树
    if not root:
        return None
    root.left, root.right = invertTree(root.right), invertTree(root.left)
    return root

复杂度与归属

时间复杂度O(n)
空间复杂度O(h)
所属分类二叉树
题源LeetCode 226

关联教程

返回题图鉴