[路飞]leetcode-230.二叉搜索树中第K小的元素

69 阅读1分钟

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