//使用双指针记录同一值的出现次数
var findMode = function(root) {
let p=root
let count=0 //次数
let max=1
let arr=[]
const dd=function(root){
//退出递归的条件
if(root==null){
return
}
dd(root.left)
//处理
//累计当前值出现的次数
if(p.val==root.val){
count++
}else{
count=1
}
//更新p指针
p=root
//判断当前次数是否为最大次数
if(count==max){
arr.push(root.val)
}
//如果当前次数大于出现过的次数,则替换数组中的值
if(count>max){
arr=[]
max=count
arr.push(root.val)
}
dd(root.right)
}
dd(root)
return arr
};
力扣501. 二叉搜索树中的众数(JavaScript)
最新推荐文章于 2024-11-16 14:46:58 发布