leetcode和算法----日更

leetcode 501 二叉搜索树中的众数

2020-01-28  本文已影响0人  Arsenal4ever

维护个字典,遍历一遍找到最大次数,在找到 key 就好。我感觉会有简单写法。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def findMode(self, root):
        """
        :type root: TreeNode
        :rtype: List[int]
        """
        if not root:
            return []
        from collections import defaultdict
        self.cache = defaultdict(int)
        self.travalNode(root)
        times = max(self.cache.values())
        answer = []
        for key, val in self.cache.items():
            if val == times:
                answer.append(key)
        return answer

    def travalNode(self, root):
        if not root:
            return
        self.cache[root.val] += 1
        self.travalNode(root.left)
        self.travalNode(root.right)
上一篇 下一篇

猜你喜欢

热点阅读