ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

二叉查找树中搜索区间

2021-04-14 19:02:42  阅读:157  来源: 互联网

标签:val 树中 list 二叉 k2 k1 查找 root public


描述

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

样例

样例 1:

输入:

tree = {5}
k1 = 6
k2 = 10

输出:

[]

解释:没有数字介于6和10之间
样例 2:

输入:

tree = {20,8,22,4,12}
k1 = 10
k2 = 22

输出:

[12,20,22]

解释:[12,20,22]介于10和22之间

题目较简单,直接贴代码

/**
 * 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 {
  public List<Integer> searchRange(TreeNode root, int k1, int k2) {
        // write your code here
        List<Integer> list = new ArrayList<>();
        if (root==null){
            return list;
        }
        help(root,k1,k2,list);
        return list;
    }
    public void help(TreeNode root, int k1, int k2,List<Integer> list){
       if (root.left==null&&root.right==null) {
         if (root.val<=k2&&root.val>=k1){
              list.add(root.val);
         }
         
         return;
       }
        if (root.val<=k2&&root.val>=k1) list.add(root.val);
        if (root.left!=null)
        help(root.left,k1,k2,list);
        if (root.right!=null)
        help(root.right,k1,k2,list);
    }
}

 

标签:val,树中,list,二叉,k2,k1,查找,root,public
来源: https://blog.csdn.net/At_a_lost/article/details/115706394

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有