二叉搜索树中第K小的元素

已关闭
dadingPython / C++入场费 2 金币1 次提交

题目描述

给定一棵二叉搜索树(BST),请找出其中第 k 小的元素值。BST 的定义:对于任意节点,左子树中所有节点的值都小于该节点的值,右子树中所有节点的值都大于该节点的值。

输入格式

第一行是一个整数 n,表示树中节点的个数。第二行是 n 个整数,表示按层序遍历给出的 BST(空节点用 -1 表示,保证输入构成合法的 BST)。第三行是一个整数 k(1 ≤ k ≤ n)。

输出格式

输出一个整数,表示 BST 中第 k 小的元素值。

输入输出样例

样例 1

输入:

7
5 3 7 1 4 6 8
3

输出:

4

说明/提示

BST 的中序遍历就是升序序列,想想怎么利用这个性质?