leetcode230二叉树中第K小的元素
Posted lisin-lee-cooper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode230二叉树中第K小的元素相关的知识,希望对你有一定的参考价值。
一.问题描述
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。
输入:root = [3,1,4,null,2], k = 1
输出:1
二.示例代码
public class BSTKth230 {
public static void main(String[] args) {
TreeNode treeNode = new TreeNode(3);
TreeNode treeNode2 = new TreeNode(1);
TreeNode treeNode3 = new TreeNode(4);
treeNode.left = treeNode2;
treeNode.right = treeNode3;
TreeNode treeNode4 = new TreeNode(2);
treeNode2.right = treeNode4;
int result = kthSmallest(treeNode, 1);
System.out.println(result);
}
public static List<Integer> inorder(TreeNode root, List<Integer> arr) {
if (root == null) {
return arr;
}
inorder(root.left, arr);
arr.add(root.val);
inorder(root.right, arr);
return arr;
}
public static int kthSmallest(TreeNode root, int k) {
List<Integer> nums = inorder(root, new ArrayList<>());
return nums.get(k - 1);
}
}
以上是关于leetcode230二叉树中第K小的元素的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode233. 数字1的个数(数位dp)/1583. 统计不开心的朋友(模拟)/112. 路径总和 / 230. 二叉搜索树中第K小的元素 /968. 监控二叉树(树形dp)
LeetCode——230. 二叉搜索树中第K小的元素(Java)