Vista derecha de un árbol binario

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 10
Dificultad Medio Algoritmos
Mostrar (3) Árboles binariosBFSDFS
Enviar solución

Puntos: 10

Tipos de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

Imagina que miras un árbol binario desde su lado derecho. Imprime los valores de los nodos que ves, de arriba hacia abajo: en cada nivel, el nodo que está más a la derecha (que no siempre es un hijo derecho).

Entrada

El árbol viene en el formato de LeetCode, en dos líneas: la primera tiene un entero \(k\) y la segunda \(k\) elementos separados por espacios, que son el recorrido por niveles del árbol. Cada elemento es el valor de un nodo o null si ese hijo no existe; los hijos de un null no se escriben y los null del final se omiten. Un árbol vacío se escribe con \(k = 0\) y una línea vacía.

El árbol tiene a lo más \(2 \cdot 10^4\) nodos y altura a lo más \(1000\); \(|v| \le 100\).

Salida

En la primera línea, la cantidad de nodos visibles. En la segunda, sus valores de arriba hacia abajo.

Ejemplo 1

Entrada

7
1 2 3 null 5 null 4

Salida

3
1 3 4

Ejemplo 2

Entrada

4
1 2 3 4

Salida

3
1 3 4

Ejemplo 3

Entrada

0

Salida

0

Basado en el problema 199 de LeetCode, Binary Tree Right Side View, adaptado a entrada y salida estándar; enunciado redactado para este juez. Es parte de la lista Grind 75 de Yangshun Tay.


Comentarios

No hay comentarios por el momento.