27_二叉搜索树的众数

简介: 27_二叉搜索树的众数

201.二叉搜索树中的众数

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

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

假定 BST 满足如下定义:

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

示例 1:

输入:root = [1,null,2,2]
输出:[2]

示例 2:

输入:root = [0]
输出:[0]
class Solution {
    private int count = 0;//当前节点的频次
    private int maxCount = 0;//二叉树的整个节点的频次
    List<Integer> result;
    TreeNode pre = null;
    public int[] findMode(TreeNode root) {
        findMode1(root);
        int[] res = new int[result.size()];
        for (int i = 0; i < result.size(); i++) {
            res[i] = result.get(i);
        }
        return res;
    }
    //中序遍历(左-中-右)
    public void findMode1(TreeNode cur) {
        if (cur == null) {
            return;
        }
        findMode1(cur.left);
        if (pre == null) {
            count = 1;
        } else if (pre.val == cur.val) {
            count++;
        } else {
            count = 1;
        }
        pre = cur;
        if (count == maxCount) {
            result.add(cur.val);
        }
        if (count > maxCount) {
            maxCount = count;
            result.clear();//更新结果集
            result.add(cur.val);
        }
        findMode1(cur.right);
    }
}
相关文章
|
5月前
|
算法 C语言
分治法——找众数
分治法——找众数
|
12月前
代码随想录Day17 LeetCode T98 验证二叉搜索树 T530 二叉搜索树的最小绝对差 T501 二叉搜索树中的众数 T236二叉搜索树的最近公共祖先
代码随想录Day17 LeetCode T98 验证二叉搜索树 T530 二叉搜索树的最小绝对差 T501 二叉搜索树中的众数 T236二叉搜索树的最近公共祖先
51 0
|
5月前
|
算法 程序员
【算法训练-二叉树 三】【最大深度与直径】求二叉树的最大深度、求二叉树的直径
【算法训练-二叉树 三】【最大深度与直径】求二叉树的最大深度、求二叉树的直径
59 0
|
4月前
|
算法
二叉搜索树,穷举(全排列)
二叉搜索树,穷举(全排列)
|
5月前
|
Java C++ Python
leetcode-501:二叉搜索树中的众数
leetcode-501:二叉搜索树中的众数
33 0
|
5月前
leetcode501二叉搜索树中的众数刷题打卡
leetcode501二叉搜索树中的众数刷题打卡
24 0
|
5月前
|
存储 算法 程序员
【算法训练-二叉树 七】【二叉搜索树】验证二叉搜索树、将二叉搜索树转为排序的双向循环链表
【算法训练-二叉树 七】【二叉搜索树】验证二叉搜索树、将二叉搜索树转为排序的双向循环链表
57 0
|
机器学习/深度学习 存储 人工智能
代码随想录训练营day21| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先...
代码随想录训练营day21| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先...
leetcode 501 二叉搜索树中的众数
leetcode 501 二叉搜索树中的众数
46 0
leetcode 501 二叉搜索树中的众数
每日三题-验证二叉搜索树、二叉树的直径、把二叉搜索树转换为累加树
每日三题-验证二叉搜索树、二叉树的直径、把二叉搜索树转换为累加树验证二叉搜索树验证二叉搜索树v
60 2
每日三题-验证二叉搜索树、二叉树的直径、把二叉搜索树转换为累加树