• 501. 二叉搜索树中的众数


    给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。

    假定 BST 有如下定义:

    结点左子树中所含结点的值小于等于当前结点的值
    结点右子树中所含结点的值大于等于当前结点的值
    左子树和右子树都是二叉搜索树
    例如:
    给定 BST [1,null,2,2],

    1

    2
    /
    2
    返回[2].

    提示:如果众数超过1个,不需考虑输出顺序

    进阶:你可以不使用额外的空间吗?(假设由递归产生的隐式调用栈的开销不被计算在内)

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree

    class Solution {
        List<Integer>list=new ArrayList<>();
        TreeNode preNode=null;
        int max=0,cnt=0;
        public int[] findMode(TreeNode root) {
            helper(root);
            int[] res=new int[list.size()];
            for(int i=0;i<res.length;i++){
                res[i]=list.get(i);
            }
            return res;
        }
        private void helper(TreeNode root){
            if(root ==null)return;
            helper(root.left);
            if(preNode!=null&&root.val==preNode.val){
                cnt++;
            }
            else cnt=1;
            if(cnt>max){
                list.clear();
                list.add(root.val);
                max=cnt;
            }
            else if(cnt==max){
                list.add(root.val);
            }
            preNode=root;
            helper(root.right);
        }
    }
  • 相关阅读:
    neo4j︱与python结合的py2neo使用教程
    Neo4j 简介 2019
    110.Java对象的序列化
    109.Java序列流
    108.Java装饰器设计模式
    107.Java中IO流_字符流的缓冲区
    106.Java中IO流_字符流的异常处理
    105.Java中IO流_字符流拷贝文件
    104.Java中IO流_字符流_Writer
    103.Java中IO流_字符流_Reader
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13722909.html
Copyright © 2020-2023  润新知