题目描述
给定一棵二叉树,请按层序遍历这棵树。遍历从根节点所在的第一层开始,由上到下逐层进行;同一层中的节点按照从左到右的顺序排列。
输出时需要保留每一层之间的分界:先输出二叉树的层数,再依次输出每一层包含的节点数和这些节点的值。空树没有任何一层。
输入格式
第一行一个整数 ,表示二叉树的节点数。节点编号为 到 ,根节点编号为 ;当 时表示空树。
当 时,第二行包含 个整数 ,其中 表示节点 保存的值。
接下来 行,第 行包含两个整数 ,分别表示节点 的左孩子编号和右孩子编号。编号 表示相应孩子不存在。输入保证这些数据构成一棵合法二叉树。
输出格式
第一行输出二叉树的层数。随后每层输出一行,行首是这一层的节点数,后面按照从左到右的顺序输出节点值。空树只输出一行整数 0。
0
0
7
-609 -402 -794 240 378 629 -411
2 3
0 4
0 5
0 6
7 0
0 0
0 0
4
1 -609
2 -402 -794
2 240 378
2 629 -411
5
87 557 -534 -565 706
2 0
3 4
5 0
0 0
0 0
4
1 87
1 557
2 -534 -565
1 706
数据范围与约定
- 树中节点数目在范围 [0, 2000] 内
- -1000 ≤ v_i ≤ 1000