给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。
示例 1:
输入:root = [3,1,4,null,2], k = 1
输出:1
示例 2:

输入:root = [5,3,6,2,4,null,null,1], k = 3
输出:3
提示:
树中的节点数为 n 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public int kthSmallest(TreeNode root, int k) {
List<Integer> list = new ArrayList<>();
inorder(root, list);
return list.get(k - 1);
}
public void inorder(TreeNode node, List list) {
if (node != null) {
inorder(node.left, list);
list.add(node.val);
inorder(node.right, list);
}
} }
该博客介绍了如何使用Java实现寻找二叉搜索树中第k个最小元素的问题。通过中序遍历的方法,将二叉搜索树的节点值按升序顺序存入列表,然后返回列表中第k-1个元素即可。这种方法适用于解决寻找有序数据结构中特定位置元素的场景。
1871

被折叠的 条评论
为什么被折叠?



