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つのノードがあります。
  • 配列は最後のノードの後に余分な -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