题目描述
刘老师收到一份按孩子列表保存的多叉树档案。这棵有根树共有 个节点,节点编号为 到 。输入会给出每个节点的编号以及它的有序孩子列表,但这些输入行本身不一定按照节点编号排列。
请根据全部孩子列表,确定每个节点的父节点、深度和类型。根节点的父节点为 ,深度为 ;没有孩子的节点类型为 leaf;有孩子但不是根的节点类型为 internal node;根节点的类型为 root。
最后按节点编号从小到大,输出每个节点的完整信息和它原有的有序孩子列表。
输入格式
第一行输入一个整数 ,表示节点数量。
接下来 行,每行首先输入两个整数 和 ,分别表示当前节点编号以及它的孩子数量;随后输入 个整数 ,表示这些孩子的编号和排列顺序。
输出格式
按照节点编号从小到大输出 行。节点 的输出格式为:
其中 是父节点编号, 是深度,type 按题意替换为 root、internal node 或 leaf,方括号内按输入顺序列出所有孩子。
1
0 0
node 0: parent = -1, depth = 0, root, []
2
1 0
0 1 1
node 0: parent = -1, depth = 0, root, [1]
node 1: parent = 0, depth = 1, leaf, []
3
1 0
0 2 1 2
2 0
node 0: parent = -1, depth = 0, root, [1, 2]
node 1: parent = 0, depth = 1, leaf, []
node 2: parent = 0, depth = 1, leaf, []
数据范围与约定
- 输入恰好描述一棵合法有根树