Menu
CoddyTech

Maximum Depth of Binary Tree

Se te proporciona un árbol binario almacenado en el array tree en orden por niveles. 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 marca una posición vacía y el array puede terminar con entradas -1 adicionales. Devuelve la profundidad máxima del árbol: el número de nodos en el camino más largo desde la raíz hasta una hoja.

Función

maxDepth(tree: integer-array) → integer
treeinteger-array
el árbol binario en orden por niveles, con -1 para una posición vacía
Devuelveinteger
el número de nodos en el camino más largo desde la raíz hasta una hoja

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.
  • Los dos hijos de un espacio vacío también están vacíos, y la profundidad es como máximo 14.

Ejemplos

Entrada
tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
Salida
4
Explicación
El camino más largo es 5, 8, 3, 6 (índices 0, 1, 4, 9), que contiene 4 nodos. El camino que pasa por 1 se detiene después de 2 nodos.
challenge icon

Para ir más allá

¿Cómo devolverías los valores de una ruta más larga de la raíz a una hoja, así como su longitud? Si varias rutas empatan, ¿cuál devolverías?

Restablecer código
def maxDepth(tree):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]

Salida Esperada

4