Skip to content

二叉搜索树中第K小的元素

LeetCode-230

js
// 中序遍历二叉搜索树的结果是递增的,所以采用中序遍历到k个节点,就是第k小的元素
var kthSmallest = function(root, k) {
  let res = null
  let index = 0
  function rec(node) {
    // 递归终止条件
    if(node === null) return
    // 递归左子树
    rec(node.left)
    // 根节点
    if(++index === k) return res = node.val // 得到第k小的节点val
    // 递归右子树
    rec(node.right)
  }
  rec(root)
  return res // 返回val
}