您的位置:首页 > 编程语言 > C语言/C++

(C++)剑指offer-62:二叉搜索树的第k个结点(树)(再理解)

2018-02-18 20:45 435 查看

剑指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){   //中序遍历寻找第k个
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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: