SZ#G6BT16. 【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

1
-81
0 0
1
-81
1
80
0 0
1
80
7
-91 -35 6 9 -76 -54 98
2 3
4 0
0 5
0 0
0 6
7 0
0 0
2
-91->-35->9
-91->6->-76->-54->98

数据范围与约定

  • 树中节点的数目在范围 [1, 100] 内
  • -100 ≤ v_i ≤ 100