原题网址:https://www.lintcode.com/zh-cn/problem/search-range-in-binary-search-tree/#

给定两个值 k1 和 k2(k1 < k2)和一个二叉查找树的根节点。找到树中所有值在 k1 到 k2 范围内的节点。即打印所有x (k1 <= x <= k2) 其中 x 是二叉查找树的中的节点值。返回所有升序的节点值。

您在真实的面试中是否遇到过这个题?

Yes

样例

如果有 k1 = 10 和 k2 = 22, 你的程序应该返回 [12, 20, 22].

    20/  \8   22/ \
4   12

标签

二叉树 二叉查找树
思路:中序遍历基础上加入判断条件,如果节点值在K1~K2之间则插入结果数组。
AC代码:
/*** Definition of TreeNode:* class TreeNode {* public:*     int val;*     TreeNode *left, *right;*     TreeNode(int val) {*         this->val = val;*         this->left = this->right = NULL;*     }* }*/class Solution {
public:/*** @param root: param root: The root of the binary search tree* @param k1: An integer* @param k2: An integer* @return: return: Return all keys that k1<=key<=k2 in ascending order*/vector<int> searchRange(TreeNode * root, int k1, int k2) {// write your code herevector<int>  re;if (root!=NULL&&k1<=k2){inOrderTra(root,re,k1,k2);}return re;}void inOrderTra(TreeNode * root,vector<int> &result,int K1,int K2)
{if (root->left!=NULL){inOrderTra(root->left,result,K1,K2);}if (root->val>=K1&&root->val<=K2){result.push_back(root->val);}if (root->right!=NULL){inOrderTra(root->right,result,K1,K2);}}
};

转载于:https://www.cnblogs.com/Tang-tangt/p/8919964.html

11 二叉查找树中搜索区间相关推荐

  1. java 搜索业务怎么写_Java项目实战第11天:搜索功能的实现

    原标题:Java项目实战第11天:搜索功能的实现 今天是刘小爱自学Java的第110天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 事先说明:关于今天的搜索功能实现. 并没有使用到倒排索引这 ...

  2. 日志间隔_在日志中搜索时间间隔

    日志间隔 介绍 这篇文章与我有关日志分析的迷你系列文章间接相关. 最好阅读两个主要部分,以更好地理解我在说什么. 第1 部分 , 第2部分 . 这篇文章描述了我在实现IDE方法时遇到的一个重要问题. ...

  3. 在日志中搜索时间间隔

    介绍 这篇文章与我有关日志分析的迷你系列文章间接相关. 最好阅读两个主要部分,以更好地理解我在说什么. 第1 部分 , 第2部分 . 这篇文章描述了我在实现IDE方法时遇到的一个重要问题. 任务描述 ...

  4. php文件里搜索关键字,php - PHP从文本文件中搜索关键字(Action'),使用该关键字打印所有行,然后计算打印的行数 - SO中文参考 - www.soinside.com...

    所以我刚开始学习PHP,我想从文本文件中搜索某个关键字(Action'),然后用关键字打印所有行,然后计算所有打印的行. 这是我到目前为止所拥有的: $searchfor = 'ERR:'; echo ...

  5. matlab外推法确定搜索区间的程序,《机械优化设计》复习题

    <机械优化设计>复习题 一.填空题 1.用最速下降法求f(X)=100(x 2- x 12) 2+(1- x 1) 2的最优解时,设X (0)=[-0.5,0.5]T ,第一步迭代的搜索方 ...

  6. 苹果手机中计算机功能是什么,如何将苹果11手机中的内容和隐私访问限制功能关闭...

    如何将苹果11手机中的内容和隐私访问限制功能关闭 腾讯视频/爱奇艺/优酷/外卖 充值4折起 如何将苹果11手机中的内容和隐私访问限制功能关闭呢?一起看看具体操作步骤吧. 1. 解锁手机后,找到设置图标 ...

  7. c 语言字符串查找替换,c ++ - 如何在标准字符串中搜索/查找和替换?

    c ++ - 如何在标准字符串中搜索/查找和替换? 有没有办法用std::string中的另一个字符串替换所有出现的子字符串? 例如: void SomeFunction(std::string&am ...

  8. ed2k 网络中搜索资源并选择资源下载的分析及eMule源码梳理

    上一篇博客中,客户端已连接到ed2k网络及客户端与服务器交互的eMule源码梳理,这里将开始搜索资源并下载及客户端与客户端交互的eMule源码梳理 emule 源码下载地址  http://downl ...

  9. 最强辅助!IDA 辅助工具Karta——二进制文件中搜索开源代码

    介绍 " Karta"是IDA的python插件,其功能是在已经编译过的二进制文件中搜索是否使用了开源的代码.该插件是为了匹配大体积二进制文件中的开放源代码库的开源代码(通常是查找 ...

最新文章

  1. 详解布局之--静态、自适应、流式、响应式
  2. document.createelement如何绑定点击事件_番外篇-EXCEL如何使用宏(VBA)
  3. Git 本地项目添加多个远程仓库
  4. jQuery学习-显示与隐藏
  5. SpringBoot 解决“不支持发行版本xx”的问题
  6. sql server 创建数据库 语法
  7. 终于完成了一个能够绘制的FireFox插件
  8. Modelica学习笔记3
  9. 华为外包数据库面试问题分享20211225
  10. 999宝藏网尼古拉斯电脑城装机版V6.0
  11. 自动化测试的三种测试报告模板
  12. 203.为用户定义的数据类型绑定默认值案例
  13. 字母顺序排序(C语言)
  14. CentOS安装Docker CE
  15. Win2003 服务器安装及设置教程 系统设置篇
  16. 豆瓣电影Top250数据分析
  17. java嵌套循环_java基础之嵌套循环
  18. 二、话题通信原理,代码实现
  19. 数字地与模拟地的区别——为何要分开
  20. Guava缓存过期的一些坑

热门文章

  1. Visual Studio 2019 v16.6 Preview 3 发布
  2. c# 将doc转换为docx
  3. C#中的高级测试驱动开发
  4. Visual Studio 2019 RC入门——第2部分
  5. 通过NHibernate ORM和CodeDom在任何数据库中自动生成表以生成代码
  6. C#的Navigate的异常处理
  7. python数组如果余弦_numpy :: 计算特征之间的余弦距离
  8. 纽约州立大学宾汉姆顿大学计算机科学专业,纽约州立大学宾汉姆顿大学
  9. docker mysql5.7 主从_使用Docker部署MySQL 5.78.0主从集群的方法步骤
  10. 创建web工程Spring配置文件找不到问题解决方案