SZ#G6BT01. 【GESP强化 六级】二叉树的层序遍历

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB

题目描述

给定一棵二叉树,请按层序遍历这棵树。遍历从根节点所在的第一层开始,由上到下逐层进行;同一层中的节点按照从左到右的顺序排列。

输出时需要保留每一层之间的分界:先输出二叉树的层数,再依次输出每一层包含的节点数和这些节点的值。空树没有任何一层。

输入格式

第一行一个整数 nn,表示二叉树的节点数。节点编号为 11nn,根节点编号为 11;当 n=0n=0 时表示空树。

n>0n>0 时,第二行包含 nn 个整数 v1,v2,,vnv_1,v_2,\ldots,v_n,其中 viv_i 表示节点 ii 保存的值。

接下来 nn 行,第 ii 行包含两个整数 li,ril_i,r_i,分别表示节点 ii 的左孩子编号和右孩子编号。编号 00 表示相应孩子不存在。输入保证这些数据构成一棵合法二叉树。

输出格式

第一行输出二叉树的层数。随后每层输出一行,行首是这一层的节点数,后面按照从左到右的顺序输出节点值。空树只输出一行整数 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