[LeetCode]230. 二叉搜索树中第K小的元素(java实现)
1. 题目
2. 读题(需要重点注意的东西)
结合二叉搜索树的特性,二叉搜索树经过中序遍历,就能生成一个排好序的数组,因此,直接查找第k个值返回即可。
3. 解法
解法:递归遍历
class Solution {
List<Integer> list = new ArrayList<>();
public int kthSmallest(TreeNode root, int k) {
List<Integer> cur = new ArrayList<>();
cur = inorder(root);
return cur.get(k-1);
}
private List<Integer> inorder(TreeNode root){
if(root == null) return list;
inorder(root.left);
list.add(root.val);
inorder(root.right);
return list;
}
}
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
递归实现中序遍历
6. 总结
二叉搜索树的中序遍历,生成的是一个从小到大排序好的数组。