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


    目录
    相关文章
    |
    1天前
    |
    C++
    两种解法解决 LeetCode 27. 移除元素【C++】
    两种解法解决 LeetCode 27. 移除元素【C++】
    |
    11天前
    |
    Java
    Java对list集合元素进行排序的几种方式
    Java对list集合元素进行排序的几种方式
    14 0
    |
    11天前
    |
    Java
    LeetCode题解-逆波兰表达式求值-Java
    逆波兰表达式求值-Java
    7 0
    |
    11天前
    |
    Java
    |
    11天前
    |
    Java
    |
    11天前
    |
    Java
    LeetCode题解-二叉搜索树中第K小的元素-Java
    LeetCode题解-二叉搜索树中第K小的元素-Java
    6 0
    |
    11天前
    |
    Java
    |
    11天前
    |
    Java
    LeetCode题解- 两两交换链表中的节点-Java
    两两交换链表中的节点-Java
    7 0
    |
    11天前
    |
    Java
    LeetCode题解-合并K个有序数组-Java
    合并K个有序数组-Java
    5 0
    |
    11天前
    |
    Java

    相关产品

  1. 云迁移中心