Menu
CoddyTech

Path Sum

Se te proporciona 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 sin hijos: las posiciones de ambos hijos 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 desde la raíz hasta una hoja
Devuelveboolean
verdadero si alguna ruta de la raíz a una hoja suma targetSum; falso en caso contrario

Restricciones

  • 1 ≤ tree.length ≤ 32767
  • Cada tree[i] es -1 o un valor con 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.

lock icon+14 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Puedes contar los caminos que suman targetSum cuando un camino puede comenzar en cualquier nodo y terminar en cualquier nodo debajo de él, y no solo ir de la raíz a una hoja?

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

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

true