LeetCode #173 - Binary Search Tree Iterator - Medium
来源:互联网 发布:农村淘宝开业计划书 编辑:程序博客网 时间:2024/06/06 13:49
Problem
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.
Example
Given a binary search tree below and its root 4 / \ 2 5 / \1 3 with > BSTIterator i = BSTIterator(root); > while (i.hasNext()) cout << i.next();output: 1, 2, 3, 4, 5
Algorithm
整理一下题意:给定一棵二叉搜索树,定义函数next()返回二叉搜索树中下一个最小值,hasnext()函数返回这棵二叉树是否有下一个最小值。
由于二叉搜索树的特点,左子<父<右子,所以利用栈中序遍历整棵树即可。题中拆分的几个函数实际上是将中序遍历的过程拆分成三个阶段(有一个函数需要自己补全)。
代码如下。
class BSTIterator {public: BSTIterator(TreeNode *root) { pushLeft(root); } /** @return whether we have a next smallest number */ bool hasNext() { return !st.empty(); } /** @return the next smallest number */ int next() { TreeNode*top=st.top(); st.pop(); pushLeft(top->right); return top->val; }private: stack<TreeNode*> st; void pushLeft(TreeNode* root){ while(root!=NULL){ st.push(root); root=root->left; } }};
0 0
- LeetCode #173 - Binary Search Tree Iterator - Medium
- Medium 173题 Binary Search Tree Iterator
- Leetcode 173. Binary Search Tree Iterator (Medium) (cpp)
- 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
- swoole深入学习 2. tcp Server和tcp Client
- 图片资源
- PHP实现的QQ空间g_tk加密算法
- dubbo学习笔记 十 dubbo-rpc
- swift语言的学习笔记四(类对象,函数)
- LeetCode #173 - Binary Search Tree Iterator - Medium
- BitmapFactory.decodeFile 加载失败 在部分安卓机器的BUG
- Java 的GroupLayout布局
- (4.6.22.5)来吧,是时候撸一份自己的RxJava框架啦:强撸为eventbus
- dubbo学习笔记 十二 dubbo-cluster
- 寻找非共有数字
- 软件项目管理流程总结
- 第四章:shell处理用户输入
- swift语言的学习笔记四-2(对上一节有些遗留进行处理)