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

    11. 二叉查找树中搜索区间

    中文English

    给定一个二叉查找树和范围[k1, k2]。按照升序返回给定范围内的节点值。

    样例

    样例 1:

    输入:{5},6,10
    输出:[]
            5
    它将被序列化为 {5}
    没有数字介于6和10之间
    

    样例 2:

    输入:{20,8,22,4,12},10,22
    输出:[12,20,22]
    解释:
            20
           /  
          8   22
         / 
        4   12
    它将被序列化为 {20,8,22,4,12}
    [12,20,22]介于10和22之间
    
     
     
    输入测试数据 (每行一个参数)如何理解测试数据?

     中序遍历,递归

    """
    Definition of TreeNode:
    class TreeNode:
        def __init__(self, val):
            self.val = val
            self.left, self.right = None, None
    """
    
    class Solution:
        """
        @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
        """
        def searchRange(self, root, k1, k2):
            # write your code here
            #二叉查找树,中序遍历
            if not root: return []
            
            results = []
            self.midTravel(root, results,k1,k2)
            
            return results
        
        def midTravel(self, root,results, k1, k2):
            #递归出口
            if not root: return 
            
            self.midTravel(root.left,results, k1, k2)
            if (root.val >= k1) and (root.val <=  k2):
                results.append(root.val)
            
            self.midTravel(root.right,results,k1,k2)
                
  • 相关阅读:
    JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString
    VS2012 MVC4 学习笔记-概览
    java中运算符的解析和计算
    Python基本数据类型之tuple
    Python基本数据类型之list
    Python基本数据类型之str
    Python基本数据类型之int
    range和xrange梳理
    python编码
    ubuntu下的ssh
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/13574065.html
Copyright © 2011-2022 走看看