Menu
CoddyTech

Maximum Depth of Binary Tree

Recibes 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 (izquierda) y 2*i+2 (derecha), -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 por niveles, con -1 para una posición vacía
Devuelveinteger
el número de nodos en el camino más largo de la raíz a 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 array 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.

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.

lock icon+13 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Cómo devolverías los valores de un camino más largo desde la raíz hasta una hoja, y no solo su longitud? Si hay varios caminos empatados, ¿cuál devolverías y cómo lo especificarías en el contrato?

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

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

4