您的位置:首页 > Web前端

《剑指Offer》之“二叉搜索树的第k个结点”

2018-03-31 22:04 176 查看

题目描述

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

代码实现

class Solution {
public:
TreeNode* KthNode(TreeNode* pRoot, int k)
{
if(pRoot == nullptr || k < 0)
return nullptr;
stack<TreeNode*> s;
TreeNode *node = pRoot;
while(node != nullptr || !s.empty()){
if(node){
s.push(node);
node = node->left;
}
else{
node = s.top();
s.pop();
k--;
if(k == 0)
return node;
node = node->right;
}
}
return nullptr;
}

};


“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  剑指offer