Menu
CoddyTech

Maximum Depth of Binary Tree

LeichtBaumdurchlaufpython iconjava iconcpp iconc iconjs icon+10

Du erhältst einen Binärbaum, der im Level-Order-Verfahren im Array tree gespeichert ist. Die Wurzel befindet sich am Index 0, die Kinder des Knotens am Index i befinden sich bei 2*i+1 (links) und 2*i+2 (rechts), -1 kennzeichnet einen leeren Platz, und das Array kann mit zusätzlichen -1-Einträgen enden. Gib die maximale Tiefe des Baums zurück: die Anzahl der Knoten auf dem längsten Pfad von der Wurzel hinunter zu einem Blatt.

Funktion

maxDepth(tree: integer-array) → integer
treeinteger-array
der Binärbaum in Ebenenreihenfolge, wobei -1 für einen leeren Platz steht
Gibt zurückinteger
die Anzahl der Knoten auf dem längsten Pfad von der Wurzel zu einem Blatt

Einschränkungen

  • 1 ≤ tree.length ≤ 32767
  • Jedes tree[i] ist -1 oder ein Wert mit 0 ≤ tree[i] ≤ 1000.
  • tree[0] ist niemals -1, daher hat der Baum mindestens einen Knoten.
  • Das Array kann nach dem letzten Knoten zusätzliche -1-Einträge enthalten.
  • Beide Kinder einer leeren Stelle sind ebenfalls leer, und die Tiefe beträgt höchstens 14.

Beispiele

Eingabe
tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
Ausgabe
4
Erklärung
Der längste Pfad ist 5, 8, 3, 6 (Indizes 0, 1, 4, 9); er umfasst 4 Knoten. Der Pfad über 1 endet nach 2 Knoten.
challenge icon

Weiterführende Frage

Wie würdest du die Werte eines längsten Pfads von der Wurzel zu einem Blatt sowie dessen Länge zurückgeben? Wenn mehrere Pfade gleich lang sind, welchen würdest du zurückgeben?

Code zurücksetzen
def maxDepth(tree):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argument

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

Erwartete Ausgabe

4