题目要求:给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数。结点左子树中所含结点的值小于等于当前结点的值,结点右子树中所含结点的值大于等于当前结点的值。
思路:如果不考虑二叉搜索树,我们可以遍历每个节点,用map去统计频率,再将map转换成为vector进行排序即可(使用pair)。但作为二叉搜索树,其中序遍历有序,我们只需要比较相邻两个元素是否相同,记录元素个数,注意更新maxCount,这样我们只需要遍历一次,而不需要先遍历一次记录maxCount,再遍历取元素。
leetcode实战:
代码实现:
递归法:
迭代法: