501. 二叉搜索树中的众数
给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。
假定 BST 有如下定义:
- 结点左子树中所含结点的值小于等于当前结点的值
- 结点右子树中所含结点的值大于等于当前结点的值
- 左子树和右子树都是二叉搜索树
链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
function findMode(root: TreeNode | null): number[] { let res: number[] = [] let sum = 1 let pre = null let maxSum = sum function traverse(root: TreeNode | null) { if (root === null) return traverse(root.left) if (pre === root.val) { sum += 1 } else { pre = root.val sum = 1 } if (maxSum < sum) { res = [] res.push(root.val) maxSum = sum } else if (maxSum === sum) { res.push(root.val) } traverse(root.right) } traverse(root) return res };
|