二叉搜索树的第K大结点
题目:给定一个二叉搜索树,请找出其中第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大结点相关推荐
- 牛客题霸 [二叉搜索树的第k个结点]C++题解/答案
牛客题霸 [二叉搜索树的第k个结点]C++题解/答案 题目: 给定一棵二叉搜索树,请找出其中的第k小的结点. 题解: 二叉搜索树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它 ...
- 【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点
[LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点 文章目录 [LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点 一.中序遍历(提前返回) 一.中序遍历(提前返回) ...
- 二叉搜索树的第 k 大节点
二叉搜索树的第 k 大节点 1.参考资料 https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ 2. ...
- 剑指offer——面试题63:二叉搜索树的第k个结点
剑指offer--面试题63:二叉搜索树的第k个结点 Solution1: 20180916重做 /* struct TreeNode {int val;struct TreeNode *left;s ...
- 《剑指Offer》51. 二叉搜索树的第k个结点
题目:51. 二叉搜索树的第k个结点 知识点:二叉搜索树 题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为 ...
- 剑指offer:二叉搜索树的第k个结点(中序遍历)
1. 题目描述 /*给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. */ 2. 思路 中序遍历二叉搜索树,第K个就是结 ...
- 二叉搜索树的第k个结点
2019独角兽企业重金招聘Python工程师标准>>> 题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值 ...
- [剑指offer]面试题第[54]题[JAVA][二叉搜索树的第k大节点][递归][迭代]
[问题描述][简单] 给定一棵二叉搜索树,请找出其中第k大的节点.示例 1: 输入: root = [3,1,4,null,2], k = 13/ \1 4\2 输出: 4 示例 2:输入: root ...
- 60、二叉搜索树的第k个结点
一.题目 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. 二.解法 1 package algorit ...
- 61二叉搜索树的第k个结点
题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. 思路:二叉搜索树的中序遍历是递增的序列,使用 ...
最新文章
- 留着肯定有用,让你脱胎成技术大神的JAVA开发技巧
- JdbcTemplate(1)(数据连接池)
- easyui datagrid onLoadSuccess方法 正确使用
- Java学习之数据类型
- SDRAM工作的大体流程
- 我的docker随笔9:docker在centos上的安装
- 修改jceks.key.serialFilter解决KMS重启后Can‘t recover key for testkey from keystore file
- Oracle 在安装时,安装文件的目录不能有汉字。
- Excel实现多表关联查询-VLOOKUP
- DNS域名服务器的搭建
- 通过c语言来实现斐波那契数列。斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13...这个数列从第3项开始,每一项都等于前两项之和。
- 基于javaweb+springboot的医院管理系统(java+Springboot+ssm+mysql+maven)
- sdkman 管理开发中使用的sdk
- 是用来将汉字输入到计算机中的一组,计算机应用基础(windows7+office2010)教学课件作者张巍4.ppt...
- 人力资源案例:薪酬与绩效考核体系建设
- 计算机丢失tool dll,catchtools.dll怎么删除,在任务管理器里面找不到
- apache ab使用详解
- OPENCV C++ 多线程播放音频和视频
- 张驰课堂:2022年CAQ中质协六西格玛考试时间通知
- 数字孪生和元宇宙技术的区别和技术体系情况