首页 > 其他 > 详细

剑指offer 62. 二叉搜索树的第 k 个结点

时间:2020-02-19 20:28:44      阅读:47      评论:0      收藏:0      [点我收藏+]

 

62. 二叉搜索树的第 k 个结点

题目描述

给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8)    中,按结点数值大小顺序第三小结点的值为4。
TreeNode* KthNode(TreeNode* pRoot, int k)
{
    // 采用中序遍历这个树,遍历到第k个结点就是答案
    stack<TreeNode*> s;
    int cnt = 0;
    TreeNode* cur = pRoot;
    while(cur || !s.empty()){
        while(cur){
            s.push(cur);
            cur = cur->left;
        }
        // 访问根节点
        cur = s.top();
        s.pop();
        cnt++;
        if(cnt == k)
            return cur;
        cur = cur->right;
    }
    return NULL;
}

 

剑指offer 62. 二叉搜索树的第 k 个结点

原文:https://www.cnblogs.com/hi3254014978/p/12332561.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!