SZ#G6BT22. 【GESP强化 六级】合并二叉树

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

题目描述

给定两棵二叉树。从两棵树的根节点开始,把处在相同位置的节点合并:如果两个节点都存在,新节点的值等于它们的值之和;如果某个位置只有一棵树存在节点,就把这个节点以及它下面的结构保留下来。

请按照这一规则递归合并两棵树,并输出合并后的二叉树。两棵树都为空时,结果也是空树。

输入格式

输入依次给出两棵二叉树。每棵树都使用下面的格式:

  • 第一行一个整数 nn,表示节点数;n=0n=0 表示空树。
  • n>0n>0 时,下一行包含 nn 个整数 v1,v2,,vnv_1,v_2,\ldots,v_n,表示各节点保存的值。
  • 接下来 nn 行,第 ii 行包含节点 ii 的左、右孩子编号 li,ril_i,r_i,编号 00 表示相应孩子不存在。

非空树的节点编号为 11nn,根节点编号为 11。输入保证两组数据都构成合法二叉树。

输出格式

输出合并后的二叉树,并按照层序遍历顺序将结果中的节点重新编号为 11mm

如果结果为空,只输出一行整数 0。否则第一行输出节点数 mm,第二行输出重新编号后各节点的值,接下来 mm 行分别输出每个节点的左、右孩子编号;编号 0 表示相应孩子不存在。

0
8
-21 -25 22 24 16 -21 -13 26
2 3
4 0
0 5
6 0
7 8
0 0
0 0
0 0
8
-21 -25 22 24 16 -21 -13 26
2 3
4 0
0 5
6 0
7 8
0 0
0 0
0 0
2
-11 -3
0 2
0 0
0
2
-11 -3
0 2
0 0
8
16 -9 -8 -15 30 24 -20 30
2 3
0 0
4 5
6 7
0 8
0 0
0 0
0 0
3
4 -29 15
2 3
0 0
0 0
8
20 -38 7 -15 30 24 -20 30
2 3
0 0
4 5
6 7
0 8
0 0
0 0
0 0

数据范围与约定

  • 两棵树中的节点数目在范围 [0, 2000] 内
  • 104-10^4 ≤ v_i ≤ 10410^4