LeetCode 501 二叉搜索树中的众数
程序员文章站
2022-03-03 10:54:17
...
基础版,利用hash,即python中的字典,key存节点,value存出现的次数
class solution:
def findMode(self, root):
tmp = {}
ans = []
if not root:
return ans
def countNode(r):
if r.val in tmp.keys():
tmp[r.val] += 1
else:
tmp[r.val] = 1
if r.left:
countNode(r.left)
if r.right:
countNode(r.right)
countNode(root)
mode = max(tmp.values())
for key, value in tmp.items():
if value == mode:
ans.append(key)
return ans
进阶版:不使用额外的空间
tips:二叉搜索树的中序遍历是递增的,指针p,ans存储结果,遍历,出现count等于最高频率,将node存入ans,出现count大于当前最高频率,ans清空
推荐阅读
-
LeetCode 426. 将二叉搜索树转化为排序的双向链表(BST中序循环遍历)
-
leetcode算法练习——不同的二叉搜索树
-
leetcode算法练习——不同的二叉搜索树
-
求二叉树中两个节点的最近公共祖先(三叉链,搜索树,普通二叉树)
-
leetcode 235. 二叉搜索树的最近公共祖先
-
【Leetcode刷题篇】leetcode235 二叉搜索树的最近公共祖先
-
LeetCode 235--二叉搜索树的最近公共祖先 ( Lowest Common Ancestor of a Binary Search Tree ) ( C语言版 )
-
Leetcode 1305:两棵二叉搜索树中的所有元素(超详细的解法!!!)
-
Leetcode 230.二叉搜索树中第k小的元素
-
LeetCode刷题实战96:不同的二叉搜索树