zoukankan      html  css  js  c++  java
  • 501. Find Mode in Binary Search Tree

    Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST.

    Assume a BST is defined as follows:

    • The left subtree of a node contains only nodes with keys less than or equal to the node's key.
    • The right subtree of a node contains only nodes with keys greater than or equal to the node's key.
    • Both the left and right subtrees must also be binary search trees.

    For example:
    Given BST [1,null,2,2],

       1
        
         2
        /
       2

    return [2].

    Note: If a tree has more than one mode, you can return them in any order.

    Follow up: Could you do that without using any extra space? (Assume that the implicit stack space incurred due to recursion does not count).

    题目含义:给一个二叉搜索树,求出现次数最多的数是哪个(哪些)

     1     private int maxMode = Integer.MIN_VALUE;
     2     private void readNodeValue(TreeNode root,Map<Integer,Integer> valueMap)
     3     {
     4         if (root == null) return;
     5         valueMap.put(root.val,valueMap.getOrDefault(root.val,0)+1);
     6         maxMode = Math.max(maxMode,valueMap.get(root.val));
     7         readNodeValue(root.left,valueMap);
     8         readNodeValue(root.right,valueMap);
     9     }
    10     
    11     
    12     public int[] findMode(TreeNode root) {
    13       Map<Integer,Integer> valueMap = new HashMap<>();
    14         readNodeValue(root,valueMap);
    15         List<Integer> temp = new ArrayList<>();
    16         for (Map.Entry<Integer,Integer> entry:valueMap.entrySet())
    17         {
    18             if (entry.getValue() == maxMode)
    19             {
    20                 temp.add(entry.getKey());
    21             }
    22         }
    23         int[] modes = new int[temp.size()];
    24        for (int i=0;i<modes.length;i++)
    25        {
    26            modes[i] = temp.get(i);
    27        }
    28         return modes;        
    29     }
  • 相关阅读:
    Day 43
    Day 42
    Day 41
    Day 40
    Linux下查看服务器的产品型号和序列号
    AgileController Portal认证成功后弹出找不到指定位置的资源
    华三交换机snmp开通
    FusionCompute 6.3.0 CNA系统安装
    集群IMC策略
    静态路由配置语法
  • 原文地址:https://www.cnblogs.com/wzj4858/p/7707289.html
Copyright © 2011-2022 走看看