題目
給定一個二叉搜索樹的根節點?
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);}
}