Binary Search Tree Iterator -- leetcode
来源:互联网 发布:铁盒下料软件 编辑:程序博客网 时间:2024/06/09 17:27
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.
基本思路:
其实就是中序遍历的非递实现。
这next smallest意思就是,从小到大逐个返回。 第一次看到,竟然理解反了。还以为是从大到小逐个返回。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class BSTIterator {public: BSTIterator(TreeNode *root) { while (root) { s_.push(root); root = root->left; } } /** @return whether we have a next smallest number */ bool hasNext() { return !s_.empty(); } /** @return the next smallest number */ int next() { auto root = s_.top(); s_.pop(); auto ans = root->val; root = root->right; while (root) { s_.push(root); root = root->left; } return ans; }private: stack<TreeNode *> s_;};/** * Your BSTIterator will be called like this: * BSTIterator i = BSTIterator(root); * while (i.hasNext()) cout << i.next(); */
0 0
- [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
- opencv学习笔记(二)
- 标签系统和文章对应关系
- 自定义View(1)--圆形图片、圆角图片的实现
- VS2013 环境的搭建
- 黑马程序员----java语言的特性和面向对象编程
- Binary Search Tree Iterator -- leetcode
- activity返回-通过手势退出当前activity
- 黑马程序员_GUI
- 几个误差参数说明
- Jenkins 安装
- Linux下如何进行FTP设置
- http://www.cnblogs.com/wenjingu/archive/2012/07/10/2584616.html
- 几种模拟按键的方法
- 汇编语言学习笔记(8)——数据处理的基本问题