每日一题 501二叉搜素树中的众数(中序遍历)

题目

给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。

如果树中有不止一个众数,可以按 任意顺序 返回。

假定 BST 满足如下定义:

  • 结点左子树中所含节点的值 小于等于 当前节点的值
  • 结点右子树中所含节点的值 大于等于 当前节点的值
  • 左子树和右子树都是二叉搜索树

示例 1:

复制代码
输入:root = [1,null,2,2]
输出:[2]

示例 2:

复制代码
输入:root = [0]
输出:[0]

题解

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    List<Integer> ans = new ArrayList<>();
    int cur = 0;
    int cnt = 0;
    int maxcnt = 0;
    public int[] findMode(TreeNode root) {
        dfs(root);
        //定义一个数组接收答案
        int[] res = new int[ans.size()];
        for(int i = 0; i < ans.size(); i++) {
            res[i] = ans.get(i);
        }
        return res;
    }
    private void dfs(TreeNode root) {
        if (root == null) {
            return;
        }
        dfs(root.left);
        if (root.val == cur) {
            cnt++;
        } else {
            cur = root.val;
            cnt = 1;
        }
        if (maxcnt == cnt) {
            ans.add(root.val);
        } else if (maxcnt < cnt) {
            //更新最大值
            ans.clear();
            ans.add(root.val);
            maxcnt = cnt;
        }
        dfs(root.right);
    }
}
相关推荐
向哆哆6 分钟前
构建跨端健身俱乐部管理系统:Flutter × OpenHarmony 的数据结构与设计解析
数据结构·flutter·鸿蒙·openharmony·开源鸿蒙
Christo310 分钟前
TFS-2026《Fuzzy Multi-Subspace Clustering 》
人工智能·算法·机器学习·数据挖掘
@ chen15 分钟前
Spring事务 核心知识
java·后端·spring
aithinker20 分钟前
使用QQ邮箱收发邮件遇到的坑 有些WIFI不支持ipv6
java
2401_8576835422 分钟前
C++中的原型模式
开发语言·c++·算法
s1hiyu32 分钟前
C++动态链接库开发
开发语言·c++·算法
(❁´◡`❁)Jimmy(❁´◡`❁)33 分钟前
CF2188 C. Restricted Sorting
c语言·开发语言·算法
We་ct33 分钟前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript
星火开发设计37 分钟前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
Hx_Ma161 小时前
SpringMVC返回值
java·开发语言·servlet