Menu
CoddyTech

Path Sum

Tu reçois un arbre binaire stocké dans le tableau tree en parcours par niveaux, ainsi qu’un nombre targetSum. La racine se trouve à l’indice 0, les enfants du nœud à l’indice i se trouvent aux indices 2*i+1 (gauche) et 2*i+2 (droite), -1 indique un emplacement vide, et le tableau peut se terminer par des entrées -1 supplémentaires. Renvoie true s’il existe un chemin de la racine jusqu’à une feuille dont les valeurs totalisent targetSum, et false sinon. Une feuille est un nœud dont les deux emplacements d’enfant sont vides.

Fonction

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
l’arbre binaire par niveaux, avec -1 pour un emplacement vide
targetSuminteger
la somme qu’un chemin de la racine à une feuille doit atteindre
Renvoieboolean
vrai si un chemin de la racine à une feuille donne une somme égale à targetSum, faux sinon

Contraintes

  • 1 ≤ tree.length ≤ 32767
  • Chaque tree[i] vaut -1 ou une valeur telle que 0 ≤ tree[i] ≤ 1000.
  • tree[0] n'est jamais -1, donc l'arbre comporte au moins un nœud.
  • Le tableau peut se terminer par des entrées -1 supplémentaires après le dernier nœud.
  • Les deux enfants d’un emplacement vide sont également vides, et la profondeur est au plus de 14.
  • 0 ≤ targetSum ≤ 15000

Exemples

Entrée
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
Sortie
true
Explication
Le chemin 3, 9, 2 (indices 0, 1, 4) totalise 14, et le 2 à l’indice 4 est une feuille.
challenge icon

Pour aller plus loin

Peux-tu compter les chemins dont la somme est égale à targetSum si un chemin peut commencer à n’importe quel nœud et se terminer à n’importe quel nœud situé en dessous de celui-ci ?

Réinitialiser le code
def hasPathSum(tree, targetSum):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

true