206 字
1 分钟
算法之二叉搜索树的众数
501. 二叉搜索树中的众数
给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。
假定 BST 有如下定义:
- 结点左子树中所含结点的值小于等于当前结点的值、
- 结点右子树中所含结点的值大于等于当前结点的值
- 左子树和右子树都是二叉搜索树

解法:
1.递归中序遍历(开辟新空间)
思路:



var findMode = function(root) { let base = 0, count = 0, maxCount = 0; let answer = [];
const update = (x) => { if (x === base) { ++count; } else { count = 1; base = x; } if (count === maxCount) { answer.push(base); } if (count > maxCount) { maxCount = count; answer = [base]; } }
const dfs = (o) => { if (!o) { return; } dfs(o.left); update(o.val); dfs(o.right); }
dfs(root); return answer;}; 算法之二叉搜索树的众数
https://nollieleo.github.io/posts/算法之二叉搜索树的众数/