Menu
CoddyTech

Path Sum

Otrzymujesz drzewo binarne zapisane w tablicy tree w kolejności poziomami oraz liczbę targetSum. 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óć true, jeśli istnieje ścieżka od korzenia do liścia, której wartości sumują się do targetSum, a w przeciwnym razie false. Liść to węzeł, którego oba miejsca na dzieci są puste.

Funkcja

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
drzewo binarne w porządku poziomowym, gdzie -1 oznacza puste miejsce
targetSuminteger
łączna wartość, jaką musi osiągnąć ścieżka od korzenia do liścia
Zwracaboolean
prawda, jeśli suma na którejś ścieżce od korzenia do liścia wynosi <code>targetSum</code>, w przeciwnym razie fałsz

Ograniczenia

  • 1 ≤ tree.length ≤ 32767
  • Każde tree[i] to -1 albo wartość spełniająca 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.
  • Oboje dzieci pustego miejsca również są puste, a głębokość wynosi co najwyżej 14.
  • 0 ≤ targetSum ≤ 15000

Przykłady

Wejście
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
Wyjście
true
Wyjaśnienie
Ścieżka 3, 9, 2 (indeksy 0, 1, 4) daje w sumie 14, a 2 pod indeksem 4 jest liściem.
challenge icon

Pytanie dodatkowe

Czy potrafisz policzyć ścieżki, których suma wynosi targetSum, jeśli ścieżka może zaczynać się w dowolnym węźle i kończyć w dowolnym węźle poniżej niego?

Zresetuj kod
def hasPathSum(tree, targetSum):
    # Wpisz kod tutaj

Test #1

Test #2

Test #3

Argumenty

tree = [3, 9, 6, -1, 2, 1, 7]
targetSum = 14

Oczekiwany wynik

true