题目
给定一个二叉搜索树的根节点
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); } }