Lintcode 二叉查找树中搜索区间
来源:互联网 发布:淘宝卖家联系淘小二 编辑:程序博客网 时间:2024/05/29 04:42
给定两个值 k1 和 k2(k1 < k2)和一个二叉查找树的根节点。找到树中所有值在 k1 到 k2 范围内的节点。即打印所有x (k1 <= x <= k2) 其中 x 是二叉查找树的中的节点值。返回所有升序的节点值。
样例
如果有 k1 = 10
和 k2 = 22
, 你的程序应该返回 [12, 20, 22]
.
20 / \ 8 22 / \4 12
标签
二叉搜索树具有左子树都小于父节点,右子树大于父节点。对每一个节点先判断值,若大于k1则进入左节点,小于k1进入右节点。进行递归。遍历整棵树。/** * 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: The root of the binary search tree. * @param k1 and k2: range k1 to k2. * @return: Return all keys that k1<=key<=k2 in ascending order. */ void searchvalue(TreeNode* root,int k1,int k2,vector<int> &result){ if(root->val<k1&&root->right!=NULL) searchvalue(root->right,k1,k2,result); else if(root->val>k2&&root->left!=NULL) searchvalue(root->left,k1,k2,result); else{ if(root->left!=NULL) searchvalue(root->left,k1,k2,result); if(root->val>=k1&&root->val<=k2) result.push_back(root->val); if(root->right!=NULL) searchvalue(root->right,k1,k2,result); } } vector<int> searchRange(TreeNode* root, int k1, int k2) { // write your code here vector<int> result; if(NULL==root) return result; searchvalue(root,k1,k2,result); return result; }};
转载请标明:http://write.blog.csdn.net/postedit/69332983
如有问题请留言。
如有帮助请顶一个,你们的支持是我最大的动力。
文章均可以转载,但请注明文章链接,谢谢。
0 0
- Lintcode 二叉查找树中搜索区间
- lintcode-二叉查找树中搜索区间-11
- LintCode 11-二叉查找树中搜索区间
- LintCode 11 二叉查找树中搜索区间
- LintCode:M-二叉查找树中搜索区间
- LintCode-----11.二叉查找树中搜索区间
- (lintcode)第11题二叉查找树中搜索区间
- LINTCODE —— 二叉查找树中搜索区间
- lintcode二叉查找树中搜索区间 java
- Lintcode 11. 二叉查找树中搜索区间
- lintcode-二叉树中查找区间
- lintcode&九章算法——No.11 二叉查找树中搜索区间 ? 待解决
- 题目:二叉查找树中搜索区间
- 二叉查找树中搜索区间
- 二叉查找树中搜索区间
- 二叉查找树中搜索区间
- 二叉查找树中搜索区间
- 二叉查找树中搜索区间
- cocos2d-x 提升篇 (17) 简单的桌上足球游戏
- shell中各种括号的作用()、(())、[]、[[]]、{}
- linux系统中从网络自动获取软件及更新的工具
- kubernetes源码阅读之controller-manager(二)
- JVM之GC详解
- Lintcode 二叉查找树中搜索区间
- 时间管理
- 2017广东工业大学程序设计竞赛决赛C.Collection Game(dp)
- A bug of user switch funtion in Android5 and its fix in Android7
- 使用CodeBlock编译一个C++程序
- CocosCreator热更新1.4.0
- 深度学习的浪潮已经开始!
- 一步一步写web之react实战(二)
- 【并查集】亲戚