LeetCode-501. 二叉搜索树中的众数(Golang实现)
2023-09-27 14:28:25 时间
LeetCode题号:501. 二叉搜索树中的众数
给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。
例如:
给定 BST [1,null,2,2],1
\
2
/
2
返回 [2]注意:
是输出众数,如果没有重复值,那么就全部输出!
解题思路
1、前序遍历 统计出所有重复数 存入map
2、遍历map 输入众数
代码:
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func findMode(root *TreeNode) []int {
var m = make(map[int]int)
m = traverses(m, root)
var list1 []int
var list2 []int
var max int = 1
for k, v := range m {
if v > max {
max = v
//清空与max值相等而追加进list2中的元素,保证进list2中的重复值必须是最大或等大的
list2 = []int{}
}
//追加与max相等的元素
if v == max && v != 1 {
list2 = append(list2, k)
}
//目的是考虑没有重复值的情况下,直接返回该list1即可
list1 = append(list1, k)
}
//说明没有重复值,都是众数
if max == 1 {
return list1
}
return list2
}
//先序遍历
func traverses(m map[int]int, node *TreeNode) map[int]int {
if node == nil {
return map[int]int{}
}
//累加重复值
m[node.Val]++
traverses(m, node.Left)
traverses(m, node.Right)
return m
}
往期回顾:
【1】LeetCode-617. 合并二叉树(Goland实现)
【2】LeetCode-104. 二叉树的最大深度(Goland实现)
【3】LeetCode-111. 二叉树的最小深度(Goland实现)
❤如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ
❤如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(๑′ᴗ‵๑)づ╭❤~
❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】
❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)
相关文章
- 【LeetCode】自由之路 [H](记忆化搜索)
- <LeetCode> 题31:数组划分
- LeetCode_二分搜索_中等_162.寻找峰值
- LeetCode_二分搜索_中等_540.有序数组中的单一元素
- LeetCode_二分搜索_中等_153.寻找旋转排序数组中的最小值
- LeetCode_双指针_递归_简单_206.反转链表
- LeetCode_动态规划_中等_152.乘积最大子数组
- LeetCode_二叉搜索树_困难_1373.二叉搜索子树的最大键值和
- LeetCode_二叉搜索树_中等_538.把二叉搜索树转换为累加树
- LeetCode_双指针_二分搜索_简单_392.判断子序列
- LeetCode_二分搜索_简单_704.二分查找
- LeetCode_二分搜索_中等_34.在排序数组中查找元素的第一个和最后一个位置
- 【LeetCode】第3天 - 704. 二分查找 | 35. 搜索插入位置
- LeetCode·669.修剪二叉搜索树·递归
- [LeetCode] 450. Delete Node in a BST 删除二叉搜索树中的节点
- [LeetCode] 369. Plus One Linked List 链表加一运算
- [LeetCode] 714. Best Time to Buy and Sell Stock with Transaction Fee 买卖股票的最佳时间有交易费
- [LeetCode] 35. Search Insert Position 搜索插入位置
- [LeetCode] 79. Word Search 单词搜索
- [LeetCode] 95. Unique Binary Search Trees II 唯一二叉搜索树 II
- [LeetCode] 188. Best Time to Buy and Sell Stock IV 买卖股票的最佳时间 IV
- leetcode 二叉搜索树中第K小的元素 python