この二分木は「フル」でしょうか?
与えられた二分木は「フル」(full) かどうかを判定します。フル二分木 (full binary tree) とは、すべてのノードが2つの子を持つか、まったく子を持たないかのどちらかで構成される特別な二分木のことです。「proper」二分木と呼ばれることもあります。
.png?table=block&id=18a2c681-664d-8173-8579-fec231dceadb&cache=v2)
入力
入力には、二分木の各ノードの値が空白区切りの整数として与えられます。これらの値は、先に述べたように左部分木から右部分木へと順番にたどる形で並んでいます。値が 0 のとき、そのノードは存在しないことを意味します。与えられる二分木は必ず有効であると保証されています。
出力
もし二分木がフル二分木であれば
Yes
、そうでなければ No
を出力してください。 例
入力 | 出力 |
1 2 3 4 5 0 0 0 0 6 7 0 0 8 9 0 0 0 0 | Yes |
1 2 3 4 5 0 0 7 8 0 0 0 0 0 6 0 0 | No |
解説
- 最初の例では、すべてのノードが子を持たないか、2つの子を持つかのいずれかしかないため、フル二分木になっています。
.png?table=block&id=18a2c681-664d-811c-9d00-c18b8127114c&cache=v2)
- 二番目の例では、値が3のノードが1つしか子を持たないため、フル二分木ではありません。
.png?table=block&id=18a2c681-664d-81fc-80ff-f7fc42236e3a&cache=v2)
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB