Menu
CoddyTech

Path Sum

Ti viene dato 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 voci -1. Restituisci true se esiste un percorso dalla radice a una foglia i cui valori sommati danno targetSum, e false altrimenti. Una foglia è un nodo senza figli: entrambe le posizioni dei suoi figli sono vuote.

Funzione

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
l'albero binario in ordine per livelli, con -1 per una posizione vuota
targetSuminteger
il totale che un percorso dalla radice a una foglia deve raggiungere
Restituisceboolean
vero se qualche percorso dalla radice a una foglia somma fino a 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 potrebbe terminare con voci -1 aggiuntive dopo l'ultimo nodo.
  • Entrambi i figli di una posizione vuota sono vuoti a loro volta 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 somma 14, e il 2 all'indice 4 è una foglia.

lock icon+14 test nascosti all’invio

challenge icon

Per approfondire

Riesci a contare i percorsi la cui somma è targetSum quando un percorso può iniziare da qualsiasi nodo e terminare in qualsiasi nodo sotto di esso, e non solo andare dalla radice a una foglia?

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

Caso 1

Caso 2

Caso 3

Input

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

Atteso

true