Menu
CoddyTech

Maximum Depth of Binary Tree

Otrzymujesz drzewo binarne zapisane w tablicy tree w kolejności poziomami. Korzeń znajduje się pod indeksem 0, dzieci węzła pod indeksem i znajdują się pod indeksami 2*i+1 (lewe) i 2*i+2 (prawe), -1 oznacza puste miejsce, a tablica może kończyć się dodatkowymi wpisami -1. Zwróć maksymalną głębokość drzewa: liczbę węzłów na najdłuższej ścieżce od korzenia do liścia.

Funkcja

maxDepth(tree: integer-array) → integer
treeinteger-array
drzewo binarne w porządku poziomami, z wartością -1 oznaczającą puste miejsce
Zwracainteger
liczba węzłów na najdłuższej ścieżce od korzenia do liścia

Ograniczenia

  • 1 ≤ tree.length ≤ 32767
  • Każde tree[i] jest równe -1 lub ma wartość spełniającą warunek 0 ≤ tree[i] ≤ 1000.
  • tree[0] nigdy nie jest równe -1, więc drzewo ma co najmniej jeden węzeł.
  • Tablica może kończyć się dodatkowymi wpisami -1 po ostatnim węźle.
  • Oba węzły potomne pustego miejsca również są puste, a głębokość wynosi co najwyżej 14.

Przykłady

Wejście
tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
Wyjście
4
Wyjaśnienie
Najdłuższa ścieżka to 5, 8, 3, 6 (indeksy 0, 1, 4, 9), która zawiera 4 węzły. Ścieżka przez 1 kończy się po 2 węzłach.

lock icon+13 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Jak zwrócisz wartości z najdłuższej ścieżki od korzenia do liścia, a nie tylko jej długość? Jeśli kilka ścieżek ma taką samą długość, którą z nich zwrócisz i jak określisz to w kontrakcie?

Zresetuj kod
def maxDepth(tree):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

4