Menu
CoddyTech

Left View of Binary Tree

Obtienes un árbol binario como el arreglo root en orden de heap: la raíz está en el índice 0, los hijos del índice i están en 2*i+1 (izquierda) y 2*i+2 (derecha), y -1 marca un espacio vacío. El arreglo puede terminar con entradas adicionales -1.

Párate a la izquierda del árbol. En cada nivel ves un nodo, el más a la izquierda; el resto del nivel queda oculto detrás de él. Devuelve los valores que ves, desde el nivel superior hacia abajo.

Función

leftView(root: integer-array) → integer-array
rootinteger-array
el árbol en orden de montículo, con -1 para un espacio vacío
Devuelveinteger-array
el valor más a la izquierda de cada nivel, empezando por el nivel superior

Restricciones

  • 1 ≤ root.length ≤ 32767
  • Cada root[i] es -1 o un valor con 0 ≤ root[i] ≤ 104.
  • Los valores de los nodos son distintos.
  • root[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 el árbol tiene como máximo 14 niveles.

Ejemplos

Entrada
root = [3, 8, 5, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, 1]
Salida
[3, 8, 6, 1]
Explicación
8 es una hoja, así que el tercer y cuarto nivel contienen solo 6 (índice 6) y 1 (índice 13), ambos bajo el hijo derecho 5. Aun así, puedes verlos: [3, 8, 6, 1].
challenge icon

Para ir más allá

Nivel d llena los índices 2^d-1 a 2^(d+1)-2. ¿Puedes construir la vista recorriendo esos rangos, sin usar una cola ni recursión? ¿Qué costo tiene en un arreglo rellenado?

Restablecer código
def leftView(root):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

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

Salida Esperada

[3, 8, 6, 1]