Menu
CoddyTech

Diameter of Binary Tree

Otrzymujesz drzewo binarne zapisane w tablicy tree w kolejności poziomami. Korzeń znajduje się pod indeksem 0, dzieci węzła o indeksie 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óć średnicę drzewa: liczbę krawędzi na najdłuższej ścieżce między dowolnymi dwoma węzłami. Ścieżka może przechodzić przez korzeń lub pozostać w obrębie jednego poddrzewa.

Funkcja

diameterOfBinaryTree(tree: integer-array) → integer
treeinteger-array
drzewo binarne w kolejności poziomów, z wartością -1 oznaczającą puste miejsce
Zwracainteger
liczba krawędzi na najdłuższej ścieżce między dwoma węzłami

Ograniczenia

  • 1 ≤ tree.length ≤ 32767
  • Każde tree[i] ma wartość -1 lub 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 za ostatnim węzłem.
  • Oboje dzieci pustego miejsca również są puste, a głębokość wynosi najwyżej 14.

Przykłady

Wejście
tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]
Wyjście
4
Wyjaśnienie
Ścieżka 7, 4, 3, 8, 6 (indeksy 9, 4, 1, 0, 2) zawiera pięć węzłów połączonych czterema krawędziami. Skręca przy korzeniu: trzy krawędzie w dół po lewej stronie i jedna w dół po prawej.

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

challenge icon

Pytanie dodatkowe

Jak zwrócić samą ścieżkę, czyli wartości węzłów od jednego końca średnicy do drugiego?

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

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]

Oczekiwane

4