输入:
{5,3,7,2,4,6,8},3
返回值:
4
示例2
输入:
{},1
返回值:
-1
解题思路:前序遍历二叉搜索树,遍历到k节点的时候保存该节点的值并推出程序。
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param proot TreeNode类
* @param k int整型
* @return int整型
*/
int res = -1;
int flag = 1;
int count = 0;
int KthNode(struct TreeNode* proot, int k ) {
// write code here
void f(struct TreeNode* proot, int k );
if(k<=0)return -1;
f(proot,k);
return res;
}
void f(struct TreeNode* proot, int k ){
if(!flag) return;
if(!proot) return;
f(proot->left,k);
count++;
if(count==k){
res = proot->val;
flag = 0;
return;
}
f(proot->right,k);
}