[leetcode]Binary Search Tree Iterator
2015-09-23 16:44
351 查看
https://leetcode.com/problems/binary-search-tree-iterator/
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.
Calling
Note:
run in average O(1) time and uses O(h) memory, where h is the height of the tree.
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.
Calling
next()will return the next smallest number in the BST.
Note:
next()and
hasNext()should
run in average O(1) time and uses O(h) memory, where h is the height of the tree.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class BSTIterator { Stack<TreeNode> stack = null; public BSTIterator(TreeNode root) { stack = new Stack<TreeNode>(); while(root != null) { stack.push(root); root = root.left; } } /** @return whether we have a next smallest number */ public boolean hasNext() { return !stack.isEmpty(); } /** @return the next smallest number */ public int next() { TreeNode p = stack.pop(); int next = p.val; p = p.right; while (p != null) { stack.push(p); p = p.left; } return next; } } /** * Your BSTIterator will be called like this: * BSTIterator i = new BSTIterator(root); * while (i.hasNext()) v[f()] = i.next(); */
相关文章推荐
- 【opencv学习】lucas金字塔光流算法的实现——基于opencv3.0+vs2013+windows10
- UISearchDisplayController 异步搜索
- 线性表之单链表
- UI基础控件 Swift
- 税金计算
- java生成解析二维码功能
- 超过宽度和高度文字会自动隐藏 --费元星
- Zabbix 集成 OneAlert 实现全方位告警
- JavaScript类型识别
- JS实现漂亮的淡蓝色滑动门效果代码
- 【ECLIPSE】两步完成eclipse配色
- Poj.2249 Binomial Showdown【组合数】 2015/09/23
- Apache Shiro权限框架在SpringMVC+Hibernate中的应用
- tomcat共享jar包(maven项目)
- nyoj——469 擅长排列的小明 II
- SpringMVC进阶(四)——注解开发
- 运维生存时间呕血之作:网站运维黑锅如何甩
- PAT(甲级)1014
- 迈普、海能达面试杂谈
- pinyin4j支持简拼和多音