题目
给定一个二叉搜索树的根节点
root
,和一个整数k
,请你设计一个算法查找其中第k
个最小元素(从 1 开始计数)。
解题思路
- 利用List存储数据;
- 遍历整个树,读取数各个节点的value;
- 对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);}
}