給定乙個有相同值的二叉搜尋樹(bst),找出 bst 中的所有眾數(出現頻率最高的元素)。
假定 bst 有如下定義:
結點左子樹中所含結點的值小於等於當前結點的值
結點右子樹中所含結點的值大於等於當前結點的值
左子樹和右子樹都是二叉搜尋樹
例如:給定 bst [1,null,2,2],1\
2/2返回[2].
高階:你可以不使用額外的空間嗎?(假設由遞迴產生的隱式呼叫棧的開銷不被計算在內)
中序遍歷加陣列中找眾數的方法:
# 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
res = self.inorder(root)
dict = {}
req =
for re in res:
dict[re] = dict.get(re,0)+1
max_v = 0
for v in dict.values():
if v>max_v:
max_v = v
for k,v in dict.items():
if v == max_v:
return req
def inorder(self, root):
if not root:
return
return self.inorder(root.left)+[root.val]+self.inorder(root.right)
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個,不需考慮輸出順序 高階 你可以不使用額外的空間嗎?假設由遞迴產生的隱式呼叫棧的開銷不被計算在內 使用額...
LeetCode501 二叉搜尋樹中的眾數
二叉搜尋樹中的眾數 二叉排序樹的中序遍歷就是二叉排序樹的順序順序輸出結果,可以降結果中序遍歷輸出然後求取 查詢一組 無序的 數中的眾數,無非就是遍歷陣列,統計每個數字出現的頻率,那麼二叉搜尋樹可以提供什麼資訊 二叉搜尋樹的左右子樹節點和父節點之間有大小關係的限制,而且二叉樹中的中序遍歷是公升序的,由...