LeetCode(230):二叉树中的第K小元素

题目描述

LeetCode(230):二叉树中的第K小元素

解题思路

二叉搜索树的性质是:左子节点<根节点<右子节点

利用这个性质,我们可以通过中序遍历,将节点从小到大推入数组中

当数组长度大于k时,停止遍历,直接返回数组的尾部元素即可

代码实现(Javascript)

/**
 * @param {TreeNode} root
 * @param {number} k
 * @return {number}
 */
var kthSmallest = function(root, k) {
    if(!root.left && !root.right){
        return root.val
    }

    let res = new Array()
    const inorder=function(node){
        if(!node){
            return null
        }
        inorder(node.left)
        
        if(res.length < k){
            res.push(node.val)
        }else{
            return
        }
        inorder(node.right)
    }
    inorder(root)

    return res[res.length-1]
}