leetcode[Find Mode in Binary Search Tree]//待整理多种解法
来源:互联网 发布:java构造器小技巧 编辑:程序博客网 时间:2024/06/06 03:40
解法一:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {private void recurse(TreeNode root, Map<Integer, Integer> map){if(root == null){return;} //System.out.println(root.val);map.put(root.val, map.getOrDefault(root.val, 0) + 1);TreeNode left = root.left;TreeNode right = root.right;recurse(left,map);recurse(right,map);} public int[] findMode(TreeNode root) { //既然都是二分查找树了,说明中根遍历肯定是有序的了,可以利用这个来作文章 //现在先采用普通方法(适用于任意二叉树),来找出二叉树中出现次数最多的结点的值 //利用HashMap来统计树中结点的值的出现次数 HashMap<Integer,Integer> map = new HashMap<>(); recurse(root, map); if(root == null){//空树单独处理,不是返回null,二十返回[] return new int[0]; } Iterator<Integer> it = map.values().iterator(); //因为空树已经单独处理了,此时it一定有元素 int mostFrequent = it.next();//找出二叉树中出现次数最多的结点的值的出现次数 while(it.hasNext()){ mostFrequent = Math.max(mostFrequent, it.next()); } //System.out.println(mostFrequent); List<Integer> resList = new ArrayList<>(); for(Map.Entry<Integer, Integer> entry : map.entrySet()){ if(entry.getValue() == mostFrequent){ resList.add(entry.getKey());//将最经常出现的结点的值统计到结果中 } } int[] res = new int[resList.size()]; for(int i = 0; i < resList.size(); i++){ res[i] = resList.get(i); } return res; }}
阅读全文
0 0
- leetcode[Find Mode in Binary Search Tree]//待整理多种解法
- leetcode [Convert Sorted Array to Binary Search Tree]//待整理多种解法
- leetcode[Lowest Common Ancestor of a Binary Search Tree]//待整理多种解法
- Find Mode in Binary Search Tree问题及解法
- [Leetcode] Binary tree -- 501. Find Mode in Binary Search Tree
- leetcode [Balanced Binary Tree]//待整理多种解法
- leetcode [Minimum Depth of Binary Tree]//待整理多种解法
- leetcode [Invert Binary Tree]//待整理多种解法
- leetcode[Binary Tree Paths]//待整理多种解法
- leetcode[Diameter of Binary Tree]//待整理多种解法
- leetcode[Binary Tree Tilt]//待整理多种解法
- leetcode[Construct String from Binary Tree]//待整理多种解法
- leetcode[Average of Levels in Binary Tree]//待整理多种解法
- LeetCode 501. Find Mode in Binary Search Tree
- leetcode 501 Find Mode in Binary Search Tree
- leetcode-501-Find Mode in Binary Search Tree
- leetcode 501. Find Mode in Binary Search Tree
- LeetCode-501. Find Mode in Binary Search Tree
- Mongodb DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20
- 【memset函数】
- utf-8 和 utf8的区别
- 数据结构:将二叉搜索树转换成一个排序的双向链表
- WebStorm集成Mocha + Chai进行js单元测试
- leetcode[Find Mode in Binary Search Tree]//待整理多种解法
- javascript将字符串中的多个空格替换为一个空格的正则实例
- Mongodb远程登陆
- Static的作用
- 数据结构-顺序表
- Seven ways to improve example-based single image super resolution笔记
- 2017.8.7所感
- RH134-第十九节-系统恢复
- 采用MD5加密字段, 向第三方发送加密后的字段出现错误