¿Está completo el árbol binario?

Se te pide determinar si el árbol binario dado está completo.

Un árbol binario está completo si todos los niveles del árbol están completamente llenos, excepto que los nodos del nivel más bajo se llenen desde la izquierda tanto como sea posible.

Ambos árboles que se muestran a continuación son árboles binarios completos.

profound.academy-Binary-tree-5.drawio.png
profound.academy-Binary-tree-6.drawio.png

Entrada

La entrada contiene enteros separados por espacios que representan los valores de los nodos del árbol binario. El orden de los valores se proporciona tal como se describió en la declaración anterior (al recorrer siempre primero el subárbol izquierdo y luego el derecho). Un valor de 0 significa que el nodo no existe. Se garantiza que el árbol binario de la entrada es válido.

Salida

El programa debe imprimir Yes si el árbol binario está completo, y No en caso contrario.

Ejemplos

Entrada

Salida

1 2 3 4 5 8 9 0 0 0 0 0 0 6 7 0 0 0 0

Yes

1 2 3 4 5 8 0 0 0 0 0 6 7 0 0 0 0

Yes

1 2 3 4 5 0 0 0 0 6 7 0 0 8 9 0 0 0 0

No

1 2 3 4 5 0 0 7 8 0 0 0 0 0 6 0 0

No

Explicación

  1. El Ejemplo 1 es un árbol binario completo porque el último nivel está lleno desde la izquierda.

    profound.academy-Binary-tree-5.drawio.png
  1. El Ejemplo 2 es un árbol binario completo porque el último nivel está lleno desde la izquierda.

    profound.academy-Binary-tree-6.drawio.png
  1. El Ejemplo 3 no es un árbol binario completo porque no se llena desde el extremo izquierdo.

    profound.academy-Binary-tree-3.drawio (2).png
  1. El Ejemplo 4 no es un árbol binario completo porque no se llena desde el extremo izquierdo.

    profound.academy-Binary-tree-4.drawio (3).png

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue