一、题目
二、题目理解
1.因为是二叉树搜索树(二叉树排序树),所以可以用中序遍历,先右 中 后左 进行(右边最大的)
2.每次dfs的时候 记录一次,当记录数等于 k 的时候,当前值就是最大k节点
3.如果进行右边的时候,没有达到最大k节点,我们继续向左边的子节点进行查找,直到找到为止
三、代码
/** * 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 res; let count = 0; function dfs(node) { if( node == null ) return; dfs(node.right); count++; if(count == k){ res = node.val; return; } dfs(node.left); } dfs(root); return res; };