二叉搜索树的第k个结点

来源:互联网 发布:c语言中最大公约数 编辑:程序博客网 时间:2024/05/17 17:46

题目描述
给定一颗二叉搜索树,请找出其中的第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);        }    }};
0 0