【树】二叉搜索树的第k个结点

题目描述
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。

有递归和非递归两种思路,都比较简单,这里给出递归方法

TreeNode* KthNode(TreeNode* pRoot, unsigned int k)
{
    if(pRoot){ 
        TreeNode *ret = KthNode(pRoot->left, k);
        if(ret) return ret;
        if(++count == k) return pRoot;
        ret = KthNode(pRoot->right,k);
        if(ret) return ret;
    }
    return nullptr;
}

猜你喜欢

转载自blog.csdn.net/qq_34606546/article/details/86724281