501. 二叉搜索树中的众数

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
依旧是使用中序遍历的逻辑,和前一个比,相同个数累加,不等重置;
List<Integer> list = new ArrayList<>();
int count = 0;
int max = 0;
int prev = Integer.MAX_VALUE;
public int[] findMode(TreeNode root) {
dfs(root);
int[] ret = new int[list.size()];
for(int i=0;i<list.size();i++) {
ret[i] = list.get(i);
}
return ret;
}
public void dfs(TreeNode node) {
if(node == null) {
return;
}
dfs(node.left);
if(prev == node.val) {
count++;
} else {
count=1;
}
prev = node.val;
if(count > max) {
list.clear();
// 更新最大值
max = count;
}
if(count == max) {
list.add(node.val);
}
dfs(node.right);
}
浙公网安备 33010602011771号