Menu
CoddyTech

Path Sum

Recibes un árbol binario almacenado en el arreglo tree en orden por niveles y un número targetSum. La raíz está en el índice 0, los hijos del nodo en el índice i están en 2*i+1 (izquierdo) y 2*i+2 (derecho), -1 indica una posición vacía y el arreglo puede terminar con entradas -1 adicionales. Devuelve true si algún camino desde la raíz hasta una hoja tiene valores que suman targetSum, y false en caso contrario. Una hoja es un nodo cuyas dos posiciones de hijo están vacías.

Función

hasPathSum(tree: integer-array, targetSum: integer) → boolean
treeinteger-array
el árbol binario en orden por niveles, con -1 para una posición vacía
targetSuminteger
el total que debe alcanzar un camino de la raíz a una hoja
Devuelveboolean
verdadero si algún camino desde la raíz hasta una hoja suma targetSum; falso en caso contrario

Restricciones

  • 1 ≤ tree.length ≤ 32767
  • Cada tree[i] es -1 o un valor que cumple 0 ≤ tree[i] ≤ 1000.
  • tree[0] nunca es -1, así que el árbol tiene al menos un nodo.
  • El arreglo puede terminar con entradas -1 adicionales después del último nodo.
  • Ambos hijos de un espacio vacío también están vacíos, y la profundidad es como máximo 14.
  • 0 ≤ targetSum ≤ 15000

Ejemplos

Entrada
tree = [3, 9, 6, -1, 2, 1, 7]targetSum = 14
Salida
true
Explicación
La ruta 3, 9, 2 (índices 0, 1, 4) suma 14, y el 2 en el índice 4 es una hoja.
challenge icon

Para ir más allá

¿Puedes contar las rutas que suman targetSum si una ruta puede comenzar en cualquier nodo y terminar en cualquier nodo situado debajo de él?

Restablecer código
def hasPathSum(tree, targetSum):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

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

Salida Esperada

true