Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. /**
  2. * Definition for a binary tree node.
  3. * public class TreeNode {
  4. * int val;
  5. * TreeNode left;
  6. * TreeNode right;
  7. * TreeNode(int x) { val = x; }
  8. * }
  9. */
  10. public class Solution {
  11. private HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
  12. private int max = 0;
  13.  
  14. public int[] findMode(TreeNode root) {
  15.  
  16. if(root==null) return new int[0];
  17.  
  18. helper(root);
  19.  
  20. List<Integer> list = new LinkedList<>();
  21. for(int key: map.keySet()){
  22. if(map.get(key) == max) list.add(key);
  23. }
  24.  
  25. int[] res = new int[list.size()];
  26. for(int i = 0; i<res.length; i++) res[i] = list.get(i);
  27. return res;
  28. }
  29.  
  30. public void helper(TreeNode node){
  31. map.put(node.val, map.getOrDefault(node.val, 0)+1);
  32. max = Math.max(map.get(node.val), max);
  33.  
  34. if(node.left!=null){
  35. helper(node.left);
  36. }
  37.  
  38. if(node.right!=null){
  39. helper(node.right);
  40. }
  41.  
  42. }
  43.  
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement