LeetCode[173] Binary Search Tree Iterator
来源:互联网 发布:加工中心常用编程代码 编辑:程序博客网 时间:2024/06/05 05: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.
初始化的时候连续左孩子压栈直到压入最小节点,调用next的时候栈顶弹出,到栈顶右子树,重复初始化步骤,连续压入左孩子,保证栈顶元素总是下一个最小的。
/** * 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) {node.push(root);root = root->left;}}/** @return whether we have a next smallest number */bool hasNext() {return !node.empty();}/** @return the next smallest number */int next() {TreeNode* ans = node.top();node.pop();int val = ans->val;ans = ans->right;while (ans) {node.push(ans);ans = ans->left;}return val;}private:stack<TreeNode* > node;};/** * Your BSTIterator will be called like this: * BSTIterator i = BSTIterator(root); * while (i.hasNext()) cout << i.next(); */
0 0
- leetcode 173: Binary Search Tree Iterator
- leetcode-173 Binary Search Tree Iterator
- Leetcode[173]-Binary Search Tree Iterator
- LeetCode(173) Binary Search Tree Iterator
- [LeetCode 173] Binary Search Tree Iterator
- [leetcode-173]Binary Search Tree Iterator(java)
- 【LEETCODE】173-Binary Search Tree Iterator
- LeetCode—173 Binary Search Tree Iterator
- leetcode #173 Binary Search Tree Iterator
- LeetCode(173) Binary Search Tree Iterator
- 【leetcode】【173】Binary Search Tree Iterator
- 【LeetCode-173】Binary Search Tree Iterator
- Leetcode 173: Binary Search Tree Iterator
- LeetCode[173] Binary Search Tree Iterator
- LeetCode No.173 Binary Search Tree Iterator
- LeetCode #173 - Binary Search Tree Iterator - Medium
- [Leetcode] #173 Binary Search Tree Iterator
- Leetcode 173 Binary Search Tree Iterator
- regionprops统计被标记的区域的面积分布,显示区域总数。
- ubuntu安装nvidia官方驱动(安装CUDA7.5之后,找不到TITAN显卡的解决方法)
- JAVASE之Object
- 105.Copy List with Random Pointer-复制带随机指针的链表(中等题)
- Linux环境下的GCC工具链详解(二)
- LeetCode[173] Binary Search Tree Iterator
- [os]pkg 解包和打包
- layer弹出框
- 快速排序思想
- CentOS7下YUM安装与配置MySQL5.7
- 关于C#泛型接口协变和抗变的一些理解
- 设置cookie
- MPAndroidChart折线图一
- 统一钉铛1.9版本都新增了哪些功能?