1 | 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 |
主要思路:
本题难点在于如何不利用额外的空间实现,这就需要我们深度去思考一些二叉搜索树的性质,二叉搜索树的中序遍历得到的序列是单调不减的利用这条性质,我们中序遍历二叉搜索树后,可以得到一组有序的序列
接下来的问题在于如何不用额外空间找到这个有序数列的众数,其中众数还可能不只有一个,那么我们使用三个变量来解决这个问题
current_value:当前节点的value
current_count:当前值出现的次数
max_count:出现最多的次数
list:用于储存众数的结果
1 | List<Integer> list = new ArrayList<>(); |