题目描述
给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
class Solution {
int a;
TreeNode* ans=NULL;
public:
TreeNode* KthNode(TreeNode* pRoot, int k)
{
a=k;
if(pRoot&&k)
f(pRoot);
return ans;
}
void f(TreeNode* root){
if(root&&!ans){
f(root->left);
a--;
if(!a)
ans=root;
f(root->right);
}
}
};