前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >501. 二叉搜索树中的众数

501. 二叉搜索树中的众数

原创
作者头像
Michel_Rolle
发布2024-07-13 23:36:11
1K0
发布2024-07-13 23:36:11

链接

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

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

假定 BST 满足如下定义:

结点左子树中所含节点的值 小于等于 当前节点的值

结点右子树中所含节点的值 大于等于 当前节点的值

左子树和右子树都是二叉搜索树

示例 1:

代码语言:javascript
复制
输入:root = [1,null,2,2]
输出:[2]
代码语言:javascript
复制
/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func findMode(root *TreeNode) []int {
    r := map[int]int{}
    search(root, r)

    max := -1
    res := []int{}
    for n, v := range r {
        if max <= v {
            if max < v {
                max = v
                res = res[0:0]
            }
            res = append(res, n)
        }
    }

    return res
}

func search(root *TreeNode, rec map[int]int) {
    if root == nil {
        return
    }

    rec[root.Val]++

    search(root.Left, rec)
    search(root.Right, rec)
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档