二分木の先行順走査 (Pre-order traversal)
木の先行順走査は再帰的に処理を行う方法で、まず現在のノードを訪問し、その後左部分木を訪れ、続いて右部分木を訪れます:
- 現在のノードを訪問する
- 左部分木 (
node.left
) を訪問する
- 右部分木 (
node.right
) を訪問する
与えられた二分木に対して、この先行順走査を行う必要があります。
入力
入力として、スペース区切りの整数が与えられます。これは二分木のノードの値を表しています。値の並びは、以前の説明で示されたように、常に左部分木から右部分木へと進む形で与えられます。0 はそのノードが存在しないことを意味します。入力される二分木は有効であることが保証されています。
出力
先行順走査を行ったとき、二分木の各ノードの値をすべてスペース区切りで出力します。
例
入力 | 出力 |
1 2 3 4 5 8 9 0 0 0 0 0 0 6 7 0 0 0 0 | 1 2 4 8 9 5 3 6 7 |
1 2 3 4 5 8 0 0 0 0 0 6 7 0 0 0 0 | 1 2 4 8 5 3 6 7 |
1 2 3 4 5 0 0 0 0 6 7 0 0 8 9 0 0 0 0 | 1 2 4 5 3 6 7 8 9 |
1 2 3 4 5 0 0 7 8 0 0 0 0 0 6 0 0 | 1 2 4 5 7 8 3 6 |
解説
- 例 1:
.png?table=block&id=18a2c681-664d-81b6-b895-f2af4dce2808&cache=v2)
- 例 2:
.png?table=block&id=18a2c681-664d-819d-8abe-e652ac4a6063&cache=v2)
- 例 3:
.png?table=block&id=18a2c681-664d-813e-8faa-f6f73561362d&cache=v2)
- 例 4:
.png?table=block&id=18a2c681-664d-8155-9979-d979fb0efb82&cache=v2)
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB