LeetCode 501 二叉搜尋樹中的眾數

2021-09-27 08:01:46 字數 1035 閱讀 8264

給定乙個有相同值的二叉搜尋樹(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 二叉搜尋樹中的眾數

二叉搜尋樹中的眾數 二叉排序樹的中序遍歷就是二叉排序樹的順序順序輸出結果,可以降結果中序遍歷輸出然後求取 查詢一組 無序的 數中的眾數,無非就是遍歷陣列,統計每個數字出現的頻率,那麼二叉搜尋樹可以提供什麼資訊 二叉搜尋樹的左右子樹節點和父節點之間有大小關係的限制,而且二叉樹中的中序遍歷是公升序的,由...