Leetcode 173. 二叉搜索树迭代器 解题思路及C++实现
解题思路:
使用中序遍历,将二叉搜索树的所有节点值依次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++实现相关推荐
- Java实现 LeetCode 173 二叉搜索树迭代器
173. 二叉搜索树迭代器 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterato ...
- leetcode 173. 二叉搜索树迭代器
实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象 ...
- LeetCode 173. 二叉搜索树迭代器(中序遍历)
文章目录 1. 题目信息 2. 二叉树中序遍历 1. 题目信息 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: B ...
- 173. 二叉搜索树迭代器/94. 二叉树的中序遍历/145. 二叉树的后序遍历/98. 验证二叉搜索树
2020-05-12 1.题目描述 二叉搜索树迭代器 2.题解 对于二叉搜索树而言,进行中序遍历就可以得到其有序序列,我们可以先对树进行遍历,将结果保存在 vector中,然后进行计算即可. 3.代码 ...
- 173. 二叉搜索树迭代器(二叉搜索树+栈)
实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterator = new BSTIte ...
- LeetCode 1586. 二叉搜索树迭代器 II(数组+栈)
文章目录 1. 题目 2. 解题 1. 题目 实现二叉搜索树(BST)的中序遍历迭代器 BSTIterator 类: BSTIterator(TreeNode root) 初始化 BSTIterato ...
- Leetcode 95. 不同的二叉搜索树 II 解题思路及C++实现
解题思路: 递归的思路. /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* ...
- LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)
文章目录 1. 题目 2. 解题 1. 题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 案例 1: 输入: 5/ \3 6/ \ ...
- leetcode题解173-二叉搜索树迭代器
问题描述 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterator = new B ...
最新文章
- 用计算机做表格的超链接,excel表格中超链接的使用怎么设置
- hdu 6096---String(AC自动机)
- docker 构建上下文 理解
- C++ boost thread学习(二)
- 面积最大的全1子矩阵
- 3.1.2 内存管理的概念
- Tomcat数据源总结
- .NET 5开源项目:b站账号快速升级到 Lv6,每天自动签到,观看,分享,投币视频!...
- 云速建站_华为云域名专场钜惠,助推中小企业云速建站
- 【java】swing窗口及继承的应用
- 一个好的系统就这么粗俗
- 价值连城 知名深度强化学习Pieter Abbeel的采访 给机器学习 深度学习 和机器人学研究者从业者的建议
- 小程序显示富文本内容(wxparse)
- fgo升级经验计算机,命运冠位指定FGO升级所需经验值介绍
- 大数据人工智能时代你跟上步伐了吗?(号称第四次技术革命)
- css学习--css基础
- 陕师大计算机专业硕士分数线,陕师大考研初试分数线
- 分布式系统的特点及问题
- Nexus私服 3 - 更新索引
- 记6年后第一次面试(耻辱面)