230. 二叉搜索树中第K小的元素 --力扣 --JAVA

简介: 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。

 题目

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。

解题思路

    1. 利用List存储数据;
    2. 遍历整个树,读取数各个节点的value;
    3. 对value进行排序,获取第k个最小值。

    代码展示

    class Solution {
        private List<Integer> list = new ArrayList<>();
        public int kthSmallest(TreeNode root, int k) {
            getVal(root);
            list.sort(null);
            return list.get(k - 1);
        }
        private void getVal(TreeNode root){
            if(root == null){
                return;
            }
            list.add(root.val);
            getVal(root.left);
            getVal(root.right);
        }
    }

    image.gif


    目录
    相关文章
    |
    29天前
    |
    存储 缓存 安全
    除了变量,final还能修饰哪些Java元素
    在Java中,final关键字不仅可以修饰变量,还可以用于修饰类、方法和参数。修饰类时,该类不能被继承;修饰方法时,方法不能被重写;修饰参数时,参数在方法体内不能被修改。
    25 2
    |
    2月前
    |
    存储 Java
    深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
    【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
    48 3
    |
    2月前
    |
    Java
    在Java的世界里,Set只接纳独一无二的元素。
    【10月更文挑战第16天】在Java的世界里,Set只接纳独一无二的元素。本文通过拟人化的手法,讲述了重复元素从初次尝试加入Set被拒绝,到经历挣扎、反思,最终通过改变自己,成为独特个体并被Set接纳的全过程。示例代码展示了这一过程的技术实现。
    26 1
    |
    1月前
    |
    Java
    那些与Java Set擦肩而过的重复元素,都经历了什么?
    在Java的世界里,Set如同一位浪漫而坚定的恋人,只对独一无二的元素情有独钟。重复元素虽屡遭拒绝,但通过反思和成长,最终变得独特,赢得了Set的认可。示例代码展示了这一过程,揭示了成长与独特性的浪漫故事。
    21 4
    |
    1月前
    |
    存储 Java
    判断一个元素是否在 Java 中的 Set 集合中
    【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
    |
    1月前
    |
    存储 算法 Java
    为什么Java Set如此“挑剔”,连重复元素都容不下?
    在Java的集合框架中,Set是一个独特的接口,它严格要求元素不重复,适用于需要唯一性约束的场景。Set通过内部数据结构(如哈希表或红黑树)和算法(如哈希值和equals()方法)实现这一特性,自动过滤重复元素,简化处理逻辑。示例代码展示了Set如何自动忽略重复元素。
    30 1
    |
    2月前
    |
    Java 开发者
    在Java集合世界中,Set以其独特的特性脱颖而出,专门应对重复元素
    在Java集合世界中,Set以其独特的特性脱颖而出,专门应对重复元素。通过哈希表和红黑树两种模式,Set能够高效地识别并拒绝重复元素的入侵,确保集合的纯净。无论是HashSet还是TreeSet,都能在不同的场景下发挥出色的表现,成为开发者手中的利器。
    28 2
    |
    算法 Java
    二叉搜索树及Java实现
    二叉搜索树及Java实现
    198 0
    二叉搜索树及Java实现
    |
    7天前
    |
    安全 Java API
    java如何请求接口然后终止某个线程
    通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
    37 6
    |
    22天前
    |
    设计模式 Java 开发者
    Java多线程编程的陷阱与解决方案####
    本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
    下一篇
    DataWorks