Menu
CoddyTech

Binary Tree Right Side View

El arreglo root contiene un árbol binario. La raíz se encuentra en el índice 0, los hijos del nodo en el índice i se encuentran en 2*i+1 (izquierda) y 2*i+2 (derecha), -1 marca un espacio vacío y puede haber entradas adicionales -1 al final.

Mira el árbol desde su lado derecho. Cada nivel te muestra exactamente un nodo, el que está más a la derecha, y oculta el resto. Enumera esos valores desde el nivel de la raíz hasta el más profundo.

Función

rightSideView(root: integer-array) → integer-array
rootinteger-array
el árbol en orden de heap, con -1 para una posición vacía
Devuelveinteger-array
el valor situado más a la derecha 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 adicionales -1 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 = [5, 2, 9, 7, 4, -1, 1, -1, 3]
Salida
[5, 9, 1, 3]
Explicación
Desde la derecha ves 5, 9 y 1 (índice 6). El cuarto nivel solo contiene 3, en el índice 8, debajo de 7 en el subárbol izquierdo. Nada en la derecha llega tan profundo, así que 3 es visible.
challenge icon

Para ir más allá

¿Cómo obtendrías la vista del lado derecho de un árbol en el que cada nodo puede tener cualquier cantidad de hijos, almacenados en una lista de izquierda a derecha?

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

Prueba #1

Prueba #2

Prueba #3

Argumento

root = [5, 2, 9, 7, 4, -1, 1, -1, 3]

Salida Esperada

[5, 9, 1, 3]