解题思路:

使用中序遍历,将二叉搜索树的所有节点值依次push进队列中。每调用依次next函数,即返回队首元素,并pop。hasNext函数只需判断队列是否为空即可。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class BSTIterator {
public:queue<int> q;BSTIterator(TreeNode* root) {//递归中序遍历inorder(root, q);}//递归中序遍历函数void inorder(TreeNode* root, queue<int>& q){if(root == NULL) return;inorder(root->left, q);q.push(root->val);inorder(root->right, q);}/** @return the next smallest number */int next() {int tmp = q.front();q.pop();return tmp;}/** @return whether we have a next smallest number */bool hasNext() {if(q.empty()) return false;else return true;}
};/*** Your BSTIterator object will be instantiated and called as such:* BSTIterator* obj = new BSTIterator(root);* int param_1 = obj->next();* bool param_2 = obj->hasNext();*/

Leetcode 173. 二叉搜索树迭代器 解题思路及C++实现相关推荐

  1. Java实现 LeetCode 173 二叉搜索树迭代器

    173. 二叉搜索树迭代器 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterato ...

  2. leetcode 173. 二叉搜索树迭代器

    实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象 ...

  3. LeetCode 173. 二叉搜索树迭代器(中序遍历)

    文章目录 1. 题目信息 2. 二叉树中序遍历 1. 题目信息 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: B ...

  4. 173. 二叉搜索树迭代器/94. 二叉树的中序遍历/145. 二叉树的后序遍历/98. 验证二叉搜索树

    2020-05-12 1.题目描述 二叉搜索树迭代器 2.题解 对于二叉搜索树而言,进行中序遍历就可以得到其有序序列,我们可以先对树进行遍历,将结果保存在 vector中,然后进行计算即可. 3.代码 ...

  5. 173. 二叉搜索树迭代器(二叉搜索树+栈)

    实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterator = new BSTIte ...

  6. LeetCode 1586. 二叉搜索树迭代器 II(数组+栈)

    文章目录 1. 题目 2. 解题 1. 题目 实现二叉搜索树(BST)的中序遍历迭代器 BSTIterator 类: BSTIterator(TreeNode root) 初始化 BSTIterato ...

  7. Leetcode 95. 不同的二叉搜索树 II 解题思路及C++实现

    解题思路: 递归的思路. /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* ...

  8. LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 案例 1: 输入: 5/ \3 6/ \ ...

  9. leetcode题解173-二叉搜索树迭代器

    问题描述 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterator = new B ...

最新文章

  1. 用计算机做表格的超链接,excel表格中超链接的使用怎么设置
  2. hdu 6096---String(AC自动机)
  3. docker 构建上下文 理解
  4. C++ boost thread学习(二)
  5. 面积最大的全1子矩阵
  6. 3.1.2 内存管理的概念
  7. Tomcat数据源总结
  8. .NET 5开源项目:b站账号快速升级到 Lv6,每天自动签到,观看,分享,投币视频!...
  9. 云速建站_华为云域名专场钜惠,助推中小企业云速建站
  10. 【java】swing窗口及继承的应用
  11. 一个好的系统就这么粗俗
  12. 价值连城 知名深度强化学习Pieter Abbeel的采访 给机器学习 深度学习 和机器人学研究者从业者的建议
  13. 小程序显示富文本内容(wxparse)
  14. fgo升级经验计算机,命运冠位指定FGO升级所需经验值介绍
  15. 大数据人工智能时代你跟上步伐了吗?(号称第四次技术革命)
  16. css学习--css基础
  17. 陕师大计算机专业硕士分数线,陕师大考研初试分数线
  18. 分布式系统的特点及问题
  19. Nexus私服 3 - 更新索引
  20. 记6年后第一次面试(耻辱面)

热门文章

  1. CentOS7修改网卡名称为eth格式
  2. K - FatMouse and Cheese
  3. WebStorm2018配置nodejs
  4. reduce 轻松将cookie转化为对象
  5. JavaCV 学习(一):JavaCV 初体验
  6. Logistic Regression逻辑回归
  7. 缓存(CDN缓存,浏览器(客户端)缓存)
  8. poj1182(加权值的并查集)
  9. ZOJ 2587 Unique Attack
  10. Windows 7玩魔兽争霸冰封王座3的解决方法