LeetCode 501 二叉搜尋樹中的眾數

2021-10-10 00:20:45 字數 574 閱讀 6819

思路:

二叉搜尋樹的中序遍歷就是乙個遞增/遞減的陣列。可以把這一題當做乙個陣列處理,遍歷一遍陣列,如果當前元素的值跟之前的元素值一樣,那麼count++。如果不一樣count就置1。同時設定base記錄上乙個元素的值,max記錄出現的最大的次數。具體考慮以下兩個點:

相同加count++

不相同count = 1

如果大於max,說明之前陣列中儲存的眾數已經不是出現次數最多的元素,要將max結果置換,並且清空結果陣列,放上當前元素。

如果等於max,說明出現了乙個新的眾數,跟以前的眾數出現的次數相同,在結果陣列中直接加上就好。

**:

class

solution

return res;

}void

dfs(treenode root)

else

if(count == max)

}else

else

if(count == max)

} base = root.val;

dfs(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個,不需考慮輸出順序 高階 你可以不使用額外的空間嗎?假設由遞迴產生的隱式呼叫棧的開銷不被計算在內 使用額...

LeetCode 501 二叉搜尋樹中的眾數

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