501. 二叉搜索树中的众数

501. 二叉搜索树中的众数

python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def findMode(self, root: Optional[TreeNode]) -> List[int]:
        self.mode = []
        self.curCount = 0
        self.maxCount = 0
        self.prev = None
        self.traverse(root)
        return self.mode 
    
    def traverse(self, root):
        if not root:
            return

        self.traverse(root.left)

        if not self.prev:
            self.curCount = 1
            self.maxCount = 1
            self.mode.append(root.val)
        else:

            if root.val == self.prev.val:
                self.curCount += 1
                # root.val 是众数
                if self.curCount == self.maxCount:
                    self.mode.append(root.val)
                elif self.curCount > self.maxCount:
                    # 更新众数
                    self.mode.clear()
                    self.maxCount = self.curCount
                    self.mode.append(root.val)

            if root.val != self.prev.val:
                # root.val 不重复的情况
                self.curCount = 1
                if self.curCount == self.maxCount:
                    self.mode.append(root.val)

        # 更新prev 
        self.prev = root
        self.traverse(root.right)
相关推荐
胡萝卜3.04 天前
数据结构初阶:树的相关性质总结
数据结构·二叉树·性质·二叉树的性质
KarrySmile4 天前
Day12--HOT100--23. 合并 K 个升序链表,146. LRU 缓存,94. 二叉树的中序遍历
数据结构·链表·二叉树·递归·hot100·lru·灵茶山艾府
大模型铲屎官13 天前
【数据结构与算法-Day 20】从零到一掌握二叉树:定义、性质、特殊形态与存储结构全解析
人工智能·python·深度学习·二叉树·大模型·计算机组成原理·数据结构与算法
工藤新一¹15 天前
C/C++ 数据结构 —— 树(2)
c语言·数据结构·c++·二叉树··c/c++
闪电麦坤9522 天前
数据结构:二叉树的遍历 (Binary Tree Traversals)
数据结构·二叉树·
pusue_the_sun22 天前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
崎岖Qiu24 天前
leetcode100.相同的树(递归练习题)
算法·leetcode·二叉树·力扣·递归
闪电麦坤9525 天前
数据结构:在二叉搜索树中插入元素(Insert in a BST)
数据结构·二叉树··二叉搜索树
闪电麦坤9525 天前
数据结构:迭代方法(Iteration)实现树的遍历
数据结构·二叉树·
闪电麦坤951 个月前
数据结构:N个节点的二叉树有多少种(Number of Binary Trees Using N Nodes)
数据结构·二叉树·