LeetCode 501 二叉搜尋樹中的眾數

2022-03-26 04:27:22 字數 1077 閱讀 7961

difficulty:簡單

給定乙個有相同值的二叉搜尋樹(bst),找出 bst 中的所有眾數(出現頻率最高的元素)。

假定 bst 有如下定義:

例如:給定 bst[1,null,2,2],

1\2

/2

返回[2].

提示:如果眾數超過1個,不需考慮輸出順序

高階:你可以不使用額外的空間嗎?(假設由遞迴產生的隱式呼叫棧的開銷不被計算在內)

solution

language: ****

思路一:迭代,dfs或bfs都可以,需要額外的空間。

# definition for a binary tree node.

# class treenode:

#     def __init__(self, x):

#         self.val = x

#         self.left = none

#         self.right = none

​class solution:

def findmode(self, root: treenode) -> list[int]:

if not root:

return none

stack, d, res = , {},

while true:

while root:

root = root.left

if not stack:

break

node = stack.pop()

d[node.val] = d.get(node.val,0) + 1

root = node.right

max_values = max(d.values())

for k,v in d.items():

if v == max_values:

return res

leetcode 501 二叉搜尋樹中的眾數

給定乙個有相同值的二叉搜尋樹 bst 找出 bst 中的所有眾數 出現頻率最高的元素 假定 bst 有如下定義 結點左子樹中所含結點的值小於等於當前結點的值 結點右子樹中所含結點的值大於等於當前結點的值 左子樹和右子樹都是二叉搜尋樹 例如 給定 bst 1,null,2,2 返回 2 高階 你可以不...

Leetcode 501 二叉搜尋樹中的眾數

給定乙個有相同值的二叉搜尋樹 bst 找出 bst 中的所有眾數 出現頻率最高的元素 假定 bst 有如下定義 例如 給定 bst 1,null,2,2 1 2 2返回 2 提示 如果眾數超過1個,不需考慮輸出順序 高階 你可以不使用額外的空間嗎?假設由遞迴產生的隱式呼叫棧的開銷不被計算在內 使用額...

LeetCode 501 二叉搜尋樹中的眾數

給定乙個有相同值的二叉搜尋樹 bst 找出 bst 中的所有眾數 出現頻率最高的元素 假定 bst 有如下定義 結點左子樹中所含結點的值小於等於當前結點的值 結點右子樹中所含結點的值大於等於當前結點的值 左子樹和右子樹都是二叉搜尋樹 例如 給定 bst 1,null,2,2 1 2 2返回 2 高階...