Menu
CoddyTech

Binary Tree Level Order Traversal

El array tree contiene un árbol binario. 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 puede haber entradas -1 adicionales al final.

Devuelve los valores de los nodos nivel por nivel: una lista por nivel, desde la raíz hasta el nivel más profundo, cada una con sus valores de izquierda a derecha.

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 y, dentro de cada nivel, 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 entradas adicionales -1 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
El índice 3 está vacío, así que 9 solo tiene un hijo derecho, 6. El tercer nivel es 6, 8, 5, y el 3 en el índice 9, debajo de 6, está solo en el cuarto nivel.
challenge icon

Para ir más allá

¿Puedes devolver los niveles en orden de 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í

Prueba #1

Prueba #2

Prueba #3

Argumento

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

Salida Esperada

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