Invertir un árbol binario
Invierte un árbol binario: en cada nodo, intercambia el hijo izquierdo con el derecho. El resultado es la imagen especular del árbol.
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\); los valores cumplen \(|v| \le 100\).
Salida
El árbol invertido, en el mismo formato.
Ejemplo 1
Entrada
7
4 2 7 1 3 6 9
Salida
7
4 7 2 9 6 3 1
Ejemplo 2
Entrada
3
2 1 3
Salida
3
2 3 1
Ejemplo 3
Entrada
0
Salida
0
Basado en el problema 226 de LeetCode, Invert Binary Tree, adaptado a entrada y salida estándar; enunciado redactado para este juez. Es parte de la lista Grind 75 de Yangshun Tay.
Comentarios