Skip to content

Commit

Permalink
Merge pull request youngyangyang04#453 from daniel1n/patch-2
Browse files Browse the repository at this point in the history
Update 0501.二叉搜索树中的众数.md
youngyangyang04 authored Jul 2, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
2 parents 0f38eb9 + 383c9cb commit 15582ef
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions problems/0501.二叉搜索树中的众数.md
Original file line number Diff line number Diff line change
@@ -345,6 +345,40 @@ public:

Java:

暴力法
```java
class Solution {
public int[] findMode(FindModeInBinarySearchTree.TreeNode root) {
Map<Integer, Integer> map = new HashMap<>();
List<Integer> list = new ArrayList<>();
if (root == null) return list.stream().mapToInt(Integer::intValue).toArray();
// 获得频率 Map
searchBST(root, map);
List<Map.Entry<Integer, Integer>> mapList = map.entrySet().stream()
.sorted((c1, c2) -> c2.getValue().compareTo(c1.getValue()))
.collect(Collectors.toList());
list.add(mapList.get(0).getKey());
// 把频率最高的加入 list
for (int i = 1; i < mapList.size(); i++) {
if (mapList.get(i).getValue() == mapList.get(i - 1).getValue()) {
list.add(mapList.get(i).getKey());
} else {
break;
}
}
return list.stream().mapToInt(Integer::intValue).toArray();
}

void searchBST(FindModeInBinarySearchTree.TreeNode curr, Map<Integer, Integer> map) {
if (curr == null) return;
map.put(curr.val, map.getOrDefault(curr.val, 0) + 1);
searchBST(curr.left, map);
searchBST(curr.right, map);
}

}
```

```Java
class Solution {
ArrayList<Integer> resList;

0 comments on commit 15582ef

Please sign in to comment.