501. 二叉搜索树中的众数

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


依旧是使用中序遍历的逻辑,和前一个比,相同个数累加,不等重置;

    List<Integer> list = new ArrayList<>();
    int count = 0;
    int max = 0;
    int prev = Integer.MAX_VALUE;
    public int[] findMode(TreeNode root) {
        dfs(root);

        int[] ret = new int[list.size()];
        for(int i=0;i<list.size();i++) {
            ret[i] = list.get(i);
        }
        return ret;

    }

    public void dfs(TreeNode node) {
        if(node == null) {
            return;
        }
        dfs(node.left);

        if(prev == node.val) {
            count++;
        } else {
            
            count=1;
        }

        prev = node.val;

        if(count > max) {
            list.clear();
            // 更新最大值
            max = count;
        }

        if(count == max) {
            list.add(node.val);
        }

        dfs(node.right);
        
    }
posted @ 2022-02-26 22:11  一颗青菜  阅读(3)  评论(0)    收藏  举报