Menu
CoddyTech

Invert Binary Tree

简单树的遍历python iconjava iconcpp iconc iconjs icon+10

你会得到一个按层序存储在数组 tree 中的二叉树。根节点位于索引 0 处,索引 i 处节点的左子节点和右子节点分别位于 2*i+1 和 2*i+2 处,-1 表示空位置,并且数组末尾可能有多余的 -1 项。

反转这棵树:交换每个节点的左子节点和右子节点,使整棵树变成镜像。以相同形式返回反转后的树,末尾不能有 -1 项。

函数

invertTree(tree: integer-array) → integer-array
treeinteger-array
按层序遍历二叉树,空位置用 -1 表示
返回值integer-array
按层序遍历镜像树,不包含末尾的 -1 项

约束条件

  • 1 ≤ tree.length ≤ 16383
  • 每个 tree[i] 都是 -1,或是满足 0 ≤ tree[i] ≤ 1000 的值。
  • tree[0] 永远不会是 -1,因此这棵树至少有一个节点。
  • 数组可能会在最后一个节点后面多出一些 -1 项。
  • 空位置的两个子节点也都是空的,并且深度最多为 14。

示例

输入
tree = [5, 3, 8, 1, 4, -1, 9]
输出
[5, 8, 3, 9, -1, 4, 1]
解释
根节点的子节点 3 和 8 交换位置。它们下面,原先在 3 下方的 1 和 4 现在变成了 4 和 1;而原先只有右子节点 9 的 8,现在这个子节点位于它的左侧。
challenge icon

进阶

如何在不构建翻转副本的情况下,使用相同的索引对检查一棵树是否与自身互为镜像?

重置代码
def invertTree(tree):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

tree = [5, 3, 8, 1, 4, -1, 9]

预期输出

[5, 8, 3, 9, -1, 4, 1]