题目描述
给定一个二叉搜索树的根节点 root,和一个整数 k,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。
示例 1:

输入:root = [3,1,4,null,2], k = 1
输出:1
示例 2:

输入:root = [5,3,6,2,4,null,null,1], k = 3
输出:3
思路&js代码
1、中序遍历
写法1:好理解一点
var kthSmallest = function (root, k) {
const list = []
const dfs = (root) => {
if (root === null || list.length >= k) return
dfs(root.left)
list.push(root)
dfs(root.right)
}
dfs(root)
return list[k - 1].val
};var kthSmallest = function(root, k) {
let ans = 0;
function dfs(node) {
if (node === null || k === 0) {
return;
}
dfs(node.left); // 左
if (--k === 0) {
ans = node.val; // 根
}
dfs(node.right); // 右
}
dfs(root);
return ans;
};