SZ#G6BT26. 【GESP强化 六级】二叉搜索树中的众数

提交8 通过2
通过率25%
时间限制2000ms
内存限制256MiB
    ID: 11428 传统题 2000ms 256MiB 尝试: 8 已通过: 2 难度: 普及 上传者: 标签>GESPGESP强化C++c++编程题二叉树二叉搜索树中序遍历3星

题目描述

给定一棵可能包含重复值的二叉搜索树,请找出其中出现次数最多的节点值,也就是这棵树的众数。

一棵树可能有一个或多个众数。请先输出众数的数量,再按照从小到大的顺序输出全部众数。

输入格式

第一行一个整数 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 表示相应孩子不存在。输入保证这些数据构成一棵合法二叉树。

输出格式

第一行输出众数的数量。第二行按照从小到大的顺序输出全部众数,相邻整数之间用一个空格分隔。

4
-100000 100000 0 -100000
0 2
3 0
4 0
0 0
1
-100000
6
100000 -100000 100000 -33334 100000 33333
2 3
0 4
0 5
0 6
0 0
0 0
1
100000
1
0
0 0
1
0

数据范围与约定

  • 树中节点的数目在范围 [1, 10410^4 ] 内
  • 105-10^5 ≤ v_i ≤ 10510^5