题目:给定一个二叉搜索树,请找出其中第K大的结点。

  • 如果按照中序遍历的顺序遍历一棵二叉搜索树,则遍历序列的数值是递增排序的。只需要用中序遍历算法遍历一棵二叉树搜索树,很容易找出第K大结点。

const BinaryTreeNode* KthNode(const BinaryTreeNode* pRoot, unsigned int k)
{
    if(pRoot == nullptr || k == 0)
        return nullptr;

return KthNodeCore(pRoot, k);
}

const BinaryTreeNode* KthNodeCore(const BinaryTreeNode* pRoot, unsigned int& k)
{
    const BinaryTreeNode* target = nullptr;

if(pRoot->m_pLeft != nullptr)
        target = KthNodeCore(pRoot->m_pLeft, k);

if(target == nullptr)
    {
        if(k == 1)
            target = pRoot;

k--;
    }

if(target == nullptr && pRoot->m_pRight != nullptr)
        target = KthNodeCore(pRoot->m_pRight, k);

return target;
}

二叉搜索树的第K大结点相关推荐

  1. 牛客题霸 [二叉搜索树的第k个结点]C++题解/答案

    牛客题霸 [二叉搜索树的第k个结点]C++题解/答案 题目: 给定一棵二叉搜索树,请找出其中的第k小的结点. 题解: 二叉搜索树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它 ...

  2. 【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点

    [LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点 文章目录 [LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点 一.中序遍历(提前返回) 一.中序遍历(提前返回) ...

  3. 二叉搜索树的第 k 大节点

    二叉搜索树的第 k 大节点 1.参考资料 https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ 2. ...

  4. 剑指offer——面试题63:二叉搜索树的第k个结点

    剑指offer--面试题63:二叉搜索树的第k个结点 Solution1: 20180916重做 /* struct TreeNode {int val;struct TreeNode *left;s ...

  5. 《剑指Offer》51. 二叉搜索树的第k个结点

    题目:51. 二叉搜索树的第k个结点 知识点:二叉搜索树 题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8)    中,按结点数值大小顺序第三小结点的值为 ...

  6. 剑指offer:二叉搜索树的第k个结点(中序遍历)

    1. 题目描述 /*给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. */ 2. 思路 中序遍历二叉搜索树,第K个就是结 ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值 ...

  8. [剑指offer]面试题第[54]题[JAVA][二叉搜索树的第k大节点][递归][迭代]

    [问题描述][简单] 给定一棵二叉搜索树,请找出其中第k大的节点.示例 1: 输入: root = [3,1,4,null,2], k = 13/ \1 4\2 输出: 4 示例 2:输入: root ...

  9. 60、二叉搜索树的第k个结点

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

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

    题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. 思路:二叉搜索树的中序遍历是递增的序列,使用 ...

最新文章

  1. 留着肯定有用,让你脱胎成技术大神的JAVA开发技巧
  2. JdbcTemplate(1)(数据连接池)
  3. easyui datagrid onLoadSuccess方法 正确使用
  4. Java学习之数据类型
  5. SDRAM工作的大体流程
  6. 我的docker随笔9:docker在centos上的安装
  7. 修改jceks.key.serialFilter解决KMS重启后Can‘t recover key for testkey from keystore file
  8. Oracle 在安装时,安装文件的目录不能有汉字。
  9. Excel实现多表关联查询-VLOOKUP
  10. DNS域名服务器的搭建
  11. 通过c语言来实现斐波那契数列。斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13...这个数列从第3项开始,每一项都等于前两项之和。
  12. 基于javaweb+springboot的医院管理系统(java+Springboot+ssm+mysql+maven)
  13. sdkman 管理开发中使用的sdk
  14. 是用来将汉字输入到计算机中的一组,计算机应用基础(windows7+office2010)教学课件作者张巍4.ppt...
  15. 人力资源案例:薪酬与绩效考核体系建设
  16. 计算机丢失tool dll,catchtools.dll怎么删除,在任务管理器里面找不到
  17. apache ab使用详解
  18. OPENCV C++ 多线程播放音频和视频
  19. 张驰课堂:2022年CAQ中质协六西格玛考试时间通知
  20. 数字孪生和元宇宙技术的区别和技术体系情况

热门文章

  1. tornado(五)
  2. springMvc--接受日期类型参数处理
  3. js 判断是否为mac电脑 、还是windows操作系统
  4. Ubuntu 16.10安装之后必须做的16 件事
  5. git 遇到fatal:multiple stage entries for merged file
  6. ES6 走马观花(ECMAScript2015 新特性)
  7. Python单元测试框架之pytest -- fixtures
  8. Swift中的Array数组遍历
  9. centos 6.5 找回root密码的方法
  10. 使用Web界面登陆vSphere