[LeetCode] Binary Search Tree Iterator
来源:互联网 发布:隐形眼镜 品牌 知乎 编辑:程序博客网 时间:2024/05/01 21:10
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.
这是一道很经典的题目,考的非递归的中序遍历。其实这道题等价于写一个二叉树中序遍历的迭代器。需要内置一个栈,一开始先存储到最左叶子节点的路径。在遍历的过程中,只要当前节点存在右孩子,则进入右孩子,存除从此处开始到当前子树里最左叶子节点的路径。
public class BSTIterator {Stack<TreeNode> stack;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 node = stack.pop();int ret = node.val;if (node.right != null) {node = node.right;while (node != null) {stack.push(node);node = node.left;}}return ret;}}
1 1
- [LeetCode] Binary Search Tree Iterator
- LeetCode Binary Search Tree Iterator
- Leetcode Binary Search Tree Iterator
- [LeetCode] Binary Search Tree Iterator
- Leetcode: Binary Search Tree Iterator
- leetcode:Binary Search Tree Iterator
- Binary Search Tree Iterator --- LeetCode
- LeetCode--Binary Search Tree Iterator
- Leetcode:Binary Search Tree Iterator
- [LeetCode]Binary Search Tree Iterator
- LeetCode: Binary Search Tree Iterator
- *LeetCode-Binary Search Tree Iterator
- [Leetcode]Binary Search Tree Iterator
- LeetCode::Binary Search Tree Iterator
- [Leetcode]Binary Search Tree Iterator
- leetcode: Binary Search Tree Iterator
- Leetcode: Binary Search Tree Iterator
- LeetCode | Binary Search Tree Iterator
- Mybatis XML 文档结构必须从头至尾包含在同一个实体内
- cocos2d-x如何检测碰撞
- HDU1977 Consecutive sum II【水题】
- 【Leetcode】Excel Sheet Column Title
- PLAYGIRLS ~紗倉まな~ 3D 界面汉化+注册表补丁
- [LeetCode] Binary Search Tree Iterator
- EditPlus中文版+英文版+注册码下载
- 再见2014,你好2015!
- 在SSL下使用java mail接收邮件,以简化外网审批工作
- 点滴记录——使用Ganglia监控Openstack Swift状态
- BPMN规范中的三种视图
- 与MQ通讯的完整JAVA程序
- 设计模式大全
- Model1与Model2