Menu
CoddyTech

Binary Tree Level Order Traversal

Recibes un árbol binario almacenado en el array tree. 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 los valores de los nodos nivel por nivel: una lista con el valor de la raíz, luego una lista con los valores del nivel inmediatamente inferior, de izquierda a derecha, y así sucesivamente hasta el nivel más profundo.

Función

levelOrder(tree: integer-array) → integer-2d-array
treeinteger-array
el árbol en orden de montículo, con -1 para una posición vacía
Devuelveinteger-2d-array
una lista de valores por nivel, primero el nivel superior, cada uno de izquierda a derecha

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 elementos -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 = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]
Salida
[[4], [9, 2], [6, 8, 5], [3]]
Explicación
La raíz 4 tiene como hijos a 9 y 2 en los índices 1 y 2. El índice 3 está vacío, así que el tercer nivel es 6 (índice 4, debajo de 9), luego 8 y 5 (índices 5 y 6, debajo de 2). El 3 del índice 9 es el hijo izquierdo de 6, solo en el cuarto nivel.

lock icon+15 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Puedes devolver los niveles en orden zigzag, el primero de izquierda a derecha, el segundo de derecha a izquierda, y así sucesivamente, sin ordenar ningún nivel?

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

Caso 1

Caso 2

Caso 3

Entrada

tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]

Esperado

[[4], [9, 2], [6, 8, 5], [3]]