Search Range in Binary Search Tree
来源:互联网 发布:非结构化数据的处理 编辑:程序博客网 时间:2024/06/06 01:56
Given two values k1 and k2 (where k1 < k2) and a root pointer to a Binary Search Tree. Find all the keys of tree in range k1 to k2. i.e. print all x such that k1<=x<=k2 and x is a key of given BST. Return all the keys in ascending order.
java 使用中序遍历的性质
/** * 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> value = new ArrayList<>(); if (root == null) { return value; } List<Integer> list = inorder(root); for (int i = 0; i < list.size(); i++) { if (k1 <= list.get(i) && k2 >= list.get(i)) { value.add(list.get(i)); } } return value; } private List<Integer> inorder(TreeNode root) { List<Integer> list = new ArrayList<>(); if (root == null) { return list; } List<Integer> left = inorder(root.left); List<Integer> right = inorder(root.right); list.addAll(left); list.add(root.val); list.addAll(right); return list; }}python使用左右子树的性质
"""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 """ result = [] def searchRange(self, root, k1, k2): # write your code here if root is None: return self.result self.findRange(root, k1, k2) return self.result def findRange(self, root, k1, k2): if root is None: return if root.val > k1: self.findRange(root.left, k1, k2) if root.val >= k1 and root.val <= k2: self.result.append(root.val) if root.val < k2: self.findRange(root.right, k1, k2)
阅读全文
0 0
- Search Range in Binary Search Tree
- [刷题]Search Range in Binary Search Tree
- lintcode:Search Range in Binary Search Tree
- Search Range in Binary Search Tree
- 递归-----Search Range in Binary Search Tree
- lintcode: Search Range in Binary Search Tree
- Lintcode_11 Search Range in Binary Search Tree
- #11 Search Range in Binary Search Tree
- Search Range in Binary Search Tree
- Search Range in Binary Search Tree
- 20150707 lintcode 总结 Search Range in Binary Search Tree
- Lintcode11 Search Range in Binary Search Tree solution 题解
- lintcode search-range-in-binary-search-tree 二叉搜索树中搜索区间
- 11.Search Range in Binary Search Tree-二叉查找树中搜索区间(中等题)
- binary search tree in C++
- Lowest common ancestor in binary search tree
- 【Leetcode】Unique Binary Search Tree in JAVA
- Remove Node in Binary Search Tree
- 2017年暑假与南宁邀请赛总结
- geotrellis使用(三十二)大量GeoTiff文件实时发布TMS服务
- Top-K in MapReduce Haddop Framework
- shiro session存redis
- JavaScript : Array.prototype.concat()中涉及嵌套数组
- Search Range in Binary Search Tree
- 《自己动手写操作系统》实践(一)
- 非常可乐 HDU
- 461_Hamming_Distance
- 双列集合
- Lua 变量和赋值运算
- adb应用安装失败分析
- 悦读---《读者》(4)
- [LeetCode 解题报告]016. 3Sum Closest