230. 二叉搜索树中第K小的元素(JS实现)
1 题目
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个*小的元素。
说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。
示例 1:
输入: root = [3,1,4,null,2], k = 1
3
/
1 4
2
输出: 1
示例 2:
输入: root = [5,3,6,2,4,null,null,1], k = 3
5
/
3 6
/
2 4
/
1
输出: 3
链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst
2 思路
这道题用递归的方法就可以做,比较简单
3代码
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @param {number} k
 * @return {number}
 */
var kthSmallest = function(root, k) {
    const res = [];
    function d(p) {
        if (!p || res.length === k) return;
        d(p.left);
        res.push(p.val);
        d(p.right);
    }
    d(root);
    return res[k-1];
};