剑指offer-62:二叉搜索树的第k个结点
目录
剑指offer-62二叉搜索树的第k个结点目录
1题目描述2题目解析3题目答案
1题目描述
给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
2题目解析
思路:二叉搜索树按照中序遍历的顺序打印出来正好就是排序好的顺序。
所以,按照中序遍历顺序找到第k个结点就是结果。
3题目答案
没想明白
class Solution {
public:
int count =
0;
TreeNode* KthNode(TreeNode* pRoot, int k){
if(pRoot!=
NULL){
TreeNode *res = KthNode(pRoot->left, k);
if(res!=
NULL)
return res;
if(++count == k)
return pRoot;
res = KthNode(pRoot->right,k);
if(res!=
NULL)
return res;
}
return NULL;
}
};