[剑指offer] 62. 二叉搜索树的第k个结点

题目描述

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

中序遍历
class Solution
{
  public:
    int times = 0;
    TreeNode *node;
    TreeNode *KthNode(TreeNode *pRoot, int k)
    {
        if (pRoot == NULL)
            return NULL;

        node = KthNode(pRoot->left, k);
        if (node)
            return node;

        ++times;
        if (times == k)
            return pRoot;

        node = KthNode(pRoot->right, k);
        if (node)
            return node;

        return NULL;
    }
};

 

posted @ 2019-01-11 08:42  Ruohua3kou  阅读(111)  评论(0编辑  收藏  举报