Ist der Binärbaum vollständig?

Sie sollen überprüfen, ob der vorliegende Binärbaum vollständig ist.

Ein Binärbaum gilt als vollständig, wenn alle Ebenen des Baumes vollständig besetzt sind und nur die unterste Ebene von links her aufgefüllt ist, soweit Knoten vorhanden sind.

Beide der unten dargestellten Bäume sind vollständige Binärbäume.

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

Eingabe

Die Eingabe enthält durch Leerzeichen getrennte ganze Zahlen, die die Werte in den Knoten des Binärbaumes repräsentieren. Die Reihenfolge der Werte wird wie in der vorherigen Erklärung beschrieben angegeben (indem man jeweils von links zum rechten Teilbaum weitergeht). Ein Wert von 0 bedeutet, dass der entsprechende Knoten nicht existiert. Es ist garantiert, dass der übergebene Binärbaum gültig ist.

Ausgabe

Das Programm soll im Fall eines vollständigen Binärbaumes "Yes" ausgeben und andernfalls "No".

Beispiele

Eingabe

Ausgabe

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

Erklärung

  1. Beispiel 1 ist ein vollständiger Binärbaum, da die letzte Ebene von links her aufgefüllt ist

    profound.academy-Binary-tree-5.drawio.png
  1. Beispiel 2 ist ebenfalls ein vollständiger Binärbaum, da die letzte Ebene von links her aufgefüllt ist

    profound.academy-Binary-tree-6.drawio.png
  1. Beispiel 3 ist kein vollständiger Binärbaum, da er nicht von ganz links ausgefüllt ist

    profound.academy-Binary-tree-3.drawio (2).png
  1. Beispiel 4 ist kein vollständiger Binärbaum, da er nicht von ganz links ausgefüllt ist

    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