Menu
CoddyTech

Maximum Depth of Binary Tree

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

给你一个按层序存储在数组 tree 中的二叉树。根节点位于索引 0 处,索引 i 处节点的左子节点位于 2*i+1 处,右子节点位于 2*i+2 处,-1 表示空位置,数组末尾可能还有额外的 -1 项。返回这棵树的最大深度:从根节点到叶节点的最长路径上的节点数。

函数

maxDepth(tree: integer-array) → integer
treeinteger-array
按层序表示的二叉树,空位置用 -1 表示
返回值integer
从根节点到叶节点的最长路径上的节点数

约束条件

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

示例

输入
tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
输出
4
解释
最长路径是 5、8、3、6(索引为 0、1、4、9),包含 4 个节点。经过 1 的路径在 2 个节点后就结束了。
challenge icon

进阶

如何返回最长根到叶路径上的值以及它的长度?如果有多条路径长度相同,你会返回哪一条?

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

测试 #1

测试 #2

测试 #3

参数

tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]

预期输出

4