zoukankan      html  css  js  c++  java
  • Lintcode---二叉查找树中搜索区间

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

    样例

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

        20
       /  
      8   22
     / 
    4   12

       

    其实,一开始看到这个问题,有点像是线段树。

       
     
    思路: 将问题想明白,利用所给出的数据结构所具有的性质。

       
        问题的本质就是进行二叉查找树的中序遍历,不过在访问节点的时候加上了一些条件。
       
        so easy, 二叉查找树,利用中序遍历,就可以从小到大进行输出了;
     
    /**
     * 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.
         */
        /*
        其实,一开始看到这个问题,有点像是线段树。
        
        思路: 将问题想明白,利用所给出的数据结构所具有的性质。
        
        问题的本质就是进行二叉查找树的中序遍历,不过在访问节点的时候加上了一些条件。
        
        so easy, 二叉查找树,利用中序遍历,就可以从小到大进行输出了;
        
        */
        
        vector<int> vec;
        vector<int> searchRange(TreeNode* root, int k1, int k2) {
            // write your code here
            if(root==NULL){
                return vec;
            }
            
            if(root->left!=NULL){
                searchRange(root->left,k1,k2);
            }
            
            if(root->val>=k1&&root->val<=k2){
                vec.push_back(root->val);
            }
            
            if(root->right!=NULL){
                searchRange(root->right,k1,k2);
            }
            
            return vec;
        }
    };
    
  • 相关阅读:
    Can't remove netstandard folder from output path (.net standard)
    website项目的reference问题
    The type exists in both DLLs
    git常用配置
    Map dependencies with code maps
    How to check HTML version of any website
    Bootstrap UI 编辑器
    网上职位要求对照
    Use of implicitly declared global variable
    ResolveUrl in external JavaScript file in asp.net project
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/7110975.html
Copyright © 2011-2022 走看看