Find Mode in Binary Search Tree

/** * Definition for a binary tree node. * public class TreeNode { *    int val; *    TreeNode left; *    TreeNode right; *    TreeNode(int x) { val = x; } * } */public class Solution {    HashMapmap = new HashMap();          public int[] findMode(TreeNode root) {        if(root == null){            return new int[0];        }        inOrder(root);        Iterator it = map.entrySet().iterator();        int max = Integer.MIN_VALUE;        ArrayListlist = new ArrayList();        for(Map.Entryentry: map.entrySet()){            Integer key = entry.getKey();            Integer value = entry.getValue();            max = Math.max(max,(int)value);        }        for(Map.Entryi: map.entrySet()){

Integer value = i.getValue();

Integer key = i.getKey();

if(max ==(int)value){

list.add(key);

}

}

int[] array = new int[list.size()];

for(int i = 0; i < list.size(); i++){

array[i] = list.get(i);

}

return array;

}

private void inOrder(TreeNode root){

if(root == null){

return;

}

if(!map.containsKey(root.val)){

map.put(root.val, 1);

//size = Math

}else{

int teemp = map.get(root.val) + 1;

map.put(root.val, teemp);

}

inOrder(root.left);

inOrder(root.right);

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容