package com.interview.books.svinterview; import com.interview.leetcode.utils.TreeNode; import com.interview.utils.ConsoleWriter; import java.util.ArrayList; import java.util.List; /** * Created_By: stefanie * Date: 14-12-8 * Time: 下午6:15 */ public class SV17_BSTRangeSearch { public List<Integer> search(TreeNode root, int m, int n){ List<Integer> numbers = new ArrayList<>(); if(root == null) return numbers; if(m > n) return search(root, n, m); search(root, m, n, numbers); return numbers; } public void search(TreeNode node, int m, int n, List<Integer> numbers){ if(node == null) return; if(m <= node.val) search(node.left, m, n, numbers); if(node.val >= m && node.val <= n) numbers.add(node.val); if(n >= node.val) search(node.right, m, n, numbers); } public static void main(String[] args){ TreeNode root = TreeNode.sampleBST(); SV17_BSTRangeSearch searcher = new SV17_BSTRangeSearch(); List<Integer> numbers = searcher.search(root, 3, 6); ConsoleWriter.printCollection(numbers); } }