每日刷题 day06---二叉搜索树的第k大节点

79 阅读1分钟

leetcode

个人树洞: 清明放假之前导师已经同意我实习了,这几天本来已经准备收拾收拾去实习了,清明节回来的第一天正式跟老师说明情况,但是突然我们老师说问问研究生院,研究生院自然不同意我实习,于是就实习凉凉了。内心很难受的,然后有个朋友又和我说不实习对我影响多大多大的话,让我更加难过,昨天一天都是过得很不好,睡觉也睡的不好,既然已经这样了,我就只能接受这种情况,在现有条件下继续尽力做好就行,不能实习有没有影响希望我之后能够继续慢慢的提升自己,不要过于揪着不能实习不放吧,所有事情不能都是让自己满意,但是也不能因为不满意就开始烂摆,接下来,执行新的计划,自己开心、充实每一天吧。

思路: 只需要知道二叉搜索树的中序遍历结果是一个升序的序列,我们可以用数组存储中序遍历结果,然后返回数组的第k-1个值

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @param {number} k
 * @return {number}
 */
var kthLargest = function(root, k) {
        let result = []
        if(root == null ) return null

        function getTree(root){
            if(root.left){
                getTree(root.left)

            }
            result.push(root.val)
            if(root.right){
                getTree(root.right)
            }

        }

        getTree(root)
        let len = result.length
        return result[len-k]

};