题目描述

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

由于二叉搜索树的中序遍历是升序,所以在中序基础上添加计数器即可。

 class Solution {
public:
TreeNode* KthNode(TreeNode* pRoot, int k)
{
int i=INT32_MIN;
return func(pRoot,k,i);
}
TreeNode* func(TreeNode* node,int k,int& i){
if(node==nullptr){
if(i==INT32_MIN){
i=;
}
return nullptr;
}
decltype(node) t;
if(t=func(node->left,k,i)){
return t;
}
++i;
if(i==k){
return node;
}
if(t=func(node->right,k,i)){
return t;
}
return nullptr;
}
};

最新文章

  1. 【验证】C# dataSource 的记忆功能
  2. Boost 安装
  3. CF 204B Little Elephant and Cards
  4. Using Post_Query Trigger in Oracle Forms
  5. canvas绘图动画细节
  6. oracle12c不能进入到http://localhost:5500/em的解决办法
  7. Linux网络编程7——使用TCP实现双方聊天
  8. java 开发环境
  9. 惊艳的随机化方法 -World Search (homework-04)
  10. Hibernate一 入门
  11. (推荐)jquery.pagination.js分页
  12. WDLINUX (Centos5.8) 安装 soap
  13. [leetcode-556-Next Greater Element III]
  14. 我的Spring学习记录(四)
  15. eclipse工作空间的基本配置
  16. 学习easyui的小伙伴有福利了
  17. makefile $@, $^, $<, $? 表示的意义
  18. 2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 20165215
  19. day-02
  20. Confluence 6 数据库和临时目录

热门文章

  1. demo ‘todolist’项目开发
  2. JN_0015:ping IP 地址
  3. Arduino上搭建ESP8266环境
  4. Pair类模板
  5. 问题 C: 神奇的口袋
  6. 微信小程序-展示后台传来的json格式数据
  7. 137.在Django中操作session
  8. Turtle模块基本方法和使用(画布)
  9. python 3 可迭代对象与迭代器
  10. Windows里面的虚拟机,部署的项目在同一网段也可以访问到