173. Binary Search Tree Iterator
来源:互联网 发布:js工厂模式方法 编辑:程序博客网 时间:2024/06/06 07:25
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 { TreeNode node; TreeNode root; Stack<TreeNode> stack; public BSTIterator(TreeNode root) { this.root=root; node=root; stack=new Stack<>(); } /** @return whether we have a next smallest number */ public boolean hasNext() { return node!=null||!stack.isEmpty(); } /** @return the next smallest number */ public int next() { TreeNode res=null; while(node!=null){ stack.push(node); node=node.left; } if(!stack.isEmpty()){ node=stack.pop(); res=node; node=node.right; } return res.val; }}/** * Your BSTIterator will be called like this: * BSTIterator i = new BSTIterator(root); * while (i.hasNext()) v[f()] = i.next(); */
0 0
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator**
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- 173. Binary Search Tree Iterator
- Spring官方文档翻译(1~6章)
- xmlhttprequest cannot load
- eclipse在选中一个变量之后,怎样让所有相同的变量都有灰色背景显示
- rsa加密算法的理解
- Java单例模式之饱汉式和饥汉式写法
- 173. Binary Search Tree Iterator
- JS 创建对象
- iOS网络层架构设计1
- Angularjs2+ASP.NET MVC Core in Visual Studio 2015开发环境安装说明
- sublime2运行java
- avalondock 创建可停靠式布局系统、Fluent Ribbon导航模式
- 运维实战案例之“Too many open files”错误与解决方法
- Android开发--WIFI实现
- shell命令之awk、sed和grep