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)