美文网首页LeetCode笔记
二叉查找树中搜索区间

二叉查找树中搜索区间

作者: 只为此心无垠 | 来源:发表于2018-03-20 15:21 被阅读6次

LeetCode题目地址

递归法

 def searchInTree(self, root, k1, k2):
        if root == None:
            return
        if root.val > k2:
            self.searchInTree(root.left,k1,k2)
        elif root.val < k1:
            self.searchInTree(root.right,k1,k2)
        else:
            self.result.append(root.val)
            self.searchInTree(root.left,k1,k2)
            self.searchInTree(root.right,k1,k2)
        
    def searchRange(self, root, k1, k2):
        # write your code here
        if k1 > k2:
            return []
        self.result = []
        self.searchInTree(root,k1,k2)
        return sorted(self.result)

层次遍历法

# write your code here
        if k1 > k2 or root == None:
            return []
        
        result = []
        queue = [root]
        size = 0
        while len(queue) != 0:
            size = len(queue)
            for i in range(size):
                node = queue.pop(0)
                if node == None:
                    continue
                if node.val < k1:
                    #无需遍历所有点,提前砍掉不符合的分支
                    queue.append(node.right)
                elif node.val > k2:
                    queue.append(node.left)
                else:
                    result.append(node.val)
                    queue.append(node.left)
                    queue.append(node.right)
        return sorted(result)

相关文章

  • 二叉查找树中搜索区间

    LeetCode题目地址 递归法 层次遍历法

  • 二叉查找树中搜索区间

    链接:http://www.lintcode.com/zh-cn/problem/search-range-in-...

  • 《数据结构与算法之美》20——二叉树(二)二叉查找树

    二叉查找树 二叉查找树是二叉树中最常用的一种类型,也叫二叉搜索树。 二叉查找树要求,在树中的任意一个节点,其左子的...

  • lintcode 二叉查找树中搜索区间

    给定两个值 k1 和 k2(k1 < k2)和一个二叉查找树的根节点。找到树中所有值在 k1 到 k2 范围内的节...

  • 二叉搜索树

    二叉搜索树 图解二叉树搜索算法图解:二叉搜索树算法二叉查找树(Binary Search Tree),(又:二叉搜...

  • 十、二叉查找树

    二叉查找树 定义:二叉查找树,又被称为二叉搜索树。其特点如下:设x为二叉查找树中的一个结点,x节点包含关键字key...

  • 二叉查找树

    二叉查找树定义 二叉查找树(Binary Search Tree), 也称为二叉搜索树, 有序二叉树(ordere...

  • 二叉查找树

    二叉查找树,又称二叉搜索树 二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质: ...

  • 数据结构中的各种树

    一、二叉树 二、二叉查找树(又称二叉排序树,二叉搜索树) 二叉查找树(Binary Search Tree)它或者...

  • 数据结构-线段树

    线段树定义: 线段树是一种二叉搜索树,又叫区间树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个...

网友评论

    本文标题:二叉查找树中搜索区间

    本文链接:https://www.haomeiwen.com/subject/jobjqftx.html