给定一颗二叉搜索树,请找出其中的第k大的结点。例如,
5
/ \
3 7
/\ /\
2 4 6 8 中
按结点数值大小顺序第三个结点的值为4。
class Solution {
private:
int count = 0;
public:
TreeNode* KthNode(TreeNode* pRoot, unsigned int k){
if(pRoot){
TreeNode * next = KthNode(pRoot->left, k);
if(next)
return next;
if(++count == k)
return pRoot;
return KthNode(pRoot->right, k);
}
return NULL;
}
};