Menu
CoddyTech

Path Sum

Ti viene fornito un albero binario memorizzato nell’array tree in ordine per livelli e un numero targetSum. La radice si trova all’indice 0, i figli del nodo all’indice i si trovano agli indici 2*i+1 (sinistro) e 2*i+2 (destro), -1 indica una posizione vuota e l’array può terminare con ulteriori elementi -1. Restituisci true se esiste un percorso dalla radice a una foglia i cui valori sommano a targetSum, altrimenti restituisci false. Una foglia è un nodo le cui due posizioni dei figli sono entrambe vuote.

Funzione

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
l'albero binario in ordine di livello, con -1 per una posizione vuota
targetSuminteger
il totale che un percorso dalla radice alla foglia deve raggiungere
Restituisceboolean
vero se qualche percorso dalla radice alla foglia ha somma targetSum, falso altrimenti

Vincoli

  • 1 ≤ tree.length ≤ 32767
  • Ogni tree[i] è -1 oppure un valore con 0 ≤ tree[i] ≤ 1000.
  • tree[0] non è mai -1, quindi l’albero ha almeno un nodo.
  • L'array può terminare con elementi -1 aggiuntivi dopo l'ultimo nodo.
  • Entrambi i figli di una posizione vuota sono vuoti anch’essi e la profondità è al massimo 14.
  • 0 ≤ targetSum ≤ 15000

Esempi

Input
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
Output
true
Spiegazione
Il percorso 3, 9, 2 (indici 0, 1, 4) dà come risultato 14, e il 2 all’indice 4 è una foglia.
challenge icon

Per approfondire

Riesci a contare i percorsi la cui somma è targetSum, se un percorso può iniziare da qualsiasi nodo e terminare in qualsiasi nodo al di sotto di esso?

Ripristina il codice
def hasPathSum(tree, targetSum):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

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

Output atteso

true