173.二叉搜索树迭代器
实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。
调用 next()
将返回二叉搜索树中的下一个最小的数。
注意: next()
和hasNext()
操作的时间复杂度是O(1),并使用 O(h) 内存,其中 h 是树的高度。
/**
* 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() {
TreeNode *n = s.top();
s.pop();
int res = n->val;
if (n->right) {
n = n->right;
while (n) {
s.push(n);
n = n->left;
}
}
return res;
}
private:
stack<TreeNode*> s;
};
/**
* Your BSTIterator will be called like this:
* BSTIterator i = BSTIterator(root);
* while (i.hasNext()) cout << i.next();
*/
173.二叉搜索树迭代器相关推荐
- Java实现 LeetCode 173 二叉搜索树迭代器
173. 二叉搜索树迭代器 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterato ...
- 173. 二叉搜索树迭代器/94. 二叉树的中序遍历/145. 二叉树的后序遍历/98. 验证二叉搜索树
2020-05-12 1.题目描述 二叉搜索树迭代器 2.题解 对于二叉搜索树而言,进行中序遍历就可以得到其有序序列,我们可以先对树进行遍历,将结果保存在 vector中,然后进行计算即可. 3.代码 ...
- 173. 二叉搜索树迭代器(二叉搜索树+栈)
实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterator = new BSTIte ...
- leetcode 173. 二叉搜索树迭代器
实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象 ...
- LeetCode 173. 二叉搜索树迭代器(中序遍历)
文章目录 1. 题目信息 2. 二叉树中序遍历 1. 题目信息 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: B ...
- Leetcode 173. 二叉搜索树迭代器 解题思路及C++实现
解题思路: 使用中序遍历,将二叉搜索树的所有节点值依次push进队列中.每调用依次next函数,即返回队首元素,并pop.hasNext函数只需判断队列是否为空即可. /*** Definition ...
- LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)
文章目录 1. 题目 2. 解题 1. 题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 案例 1: 输入: 5/ \3 6/ \ ...
- 剑指 Offer II 055. 二叉搜索树迭代器
链接:剑指 Offer II 055. 二叉搜索树迭代器 题解: /*** Definition for a binary tree node.* struct TreeNode {* int val ...
- LeetCode 1586. 二叉搜索树迭代器 II(数组+栈)
文章目录 1. 题目 2. 解题 1. 题目 实现二叉搜索树(BST)的中序遍历迭代器 BSTIterator 类: BSTIterator(TreeNode root) 初始化 BSTIterato ...
- leetcode算法题--二叉搜索树迭代器
题目链接:https://leetcode-cn.com/problems/binary-search-tree-iterator/ 1.排序 将树元素保存到数组中,再对其排序. class BSTI ...
最新文章
- 直播 | Python Web开发者的破局之道
- 【科普】国内外高质量数据科学竞赛平台有哪些?
- 10 大流行软件测试工具
- AT1981-[AGC001C]Shorten Diameter
- java 左右两边数据类型不一样_java基础语法
- HOOK使用:全局键盘钩子
- 如何用cool edit剪辑拼接音频文件
- UWP开发:APP之间的数据交互(以微信为例)
- android 前摄屏幕补光,移动终端的前置摄像头的补光方法及装置与流程
- matlab的颜色映射colormap
- 轻风送暖写诗意,梅雨传情送祝福
- 猿来你也在这里,北京上海无聊猿线下见面会成功举办
- 树莓派访问 群晖 里的共享文件夹
- 智能家居 打造一间乐享智能生活的“聪明屋”
- android 7种网络连接方式--IT蓝豹
- NodeJs - for循环的几种遍历方式
- layer遮罩层 简单的遮罩层
- 老杜 mySql自学笔记34道例题
- 2015 SCI期刊影响因子出炉
- 成功的创业者靠什么做重大决策