Leetcode501 二叉搜尋樹中的眾數

2021-10-09 18:28:44 字數 907 閱讀 3925

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

假定 bst 有如下定義:

結點左子樹中所含結點的值小於等於當前結點的值

結點右子樹中所含結點的值大於等於當前結點的值

左子樹和右子樹都是二叉搜尋樹

例如:

給定 bst [1,null,2,2],12

/2返回[2].

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

思路:對整個二叉樹進行深搜,用雜湊表記錄每個元素出現的次數,然後把出現次數同為最大的元素插入到陣列裡面進行輸出,主要想記錄的是迭代器裡面first和second,分別指向第一維和第二維的值。用unordered_map是因為比map容器能更快地通過它們的鍵訪問單個元素。

**:

class solution ;

cnt[root->val]++;

dfs(root->left);

dfs(root->right);

int max = 0;

vectorre;

for(auto it = cnt.begin(); it != cnt.end(); it++)

max = it->second > max ? it->second : max;

for(auto ip = cnt.begin(); ip != cnt.end(); ip++)

if(ip->second == max)

re.push_back(ip->first);

return re;

}unordered_mapcnt;

void dfs(treenode *root)

};

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 高階...