美文网首页我爱编程
二叉查找树中搜索区间

二叉查找树中搜索区间

作者: 泽林呗 | 来源:发表于2018-04-17 00:28 被阅读0次

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

 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left, right;
 *     public TreeNode(int val) {
 *         this.val = val;
 *         this.left = this.right = null;
 *     }
 * }
 */

public 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
     */
    public List<Integer> searchRange(TreeNode root, int k1, int k2) {
        // write your code here
        
        List<Integer> result = new ArrayList<>();
        if (root == null) {
            return null;
        }
        //递归定义
        //递归拆解
        if (root.left != null) {
            
                result.addAll(searchRange(root.left, k1, k2));
            
        }
       
        if (root.val >= k1 && root.val <= k2) {
            result.add(root.val);
        }
        if(root.right != null) {
            
                result.addAll(searchRange(root.right,k1, k2));
        }
        
        return result;
        //递归出口
        
    }
}

本题使用递归方式解决,主要找到递归的拆解以及出口
需要注意的是对null值得判断

相关文章

  • 二叉查找树中搜索区间

    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/pjwykftx.html