给定一个二叉搜索树的根节点 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
迭代解题:
var kthSmallest = function (root, k) {
let stack = [];
while (stack.length || root) {
while (root) {
stack.push(root);
root = root.left;
}
root = stack.pop();
if (--k === 0) {
return root.val;
}
root = root.right;
}
return null;
};