链接:剑指 Offer II 055. 二叉搜索树迭代器

题解:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class BSTIterator {
private:std::vector<int> _paths;int _index;
private:void dfs(TreeNode* root) {if (!root) {return;}dfs(root->left);_paths.push_back(root->val);dfs(root->right);}
public:BSTIterator(TreeNode* root):_index(0) {dfs(root);}int next() {return _paths[_index++];}bool hasNext() {return _index < _paths.size();}
};/*** 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();*/

剑指 Offer II 055. 二叉搜索树迭代器相关推荐

  1. LeetCode Algorithm 剑指 Offer II 056. 二叉搜索树中两个节点之和

    剑指 Offer II 056. 二叉搜索树中两个节点之和 Ideas 这题有点类似一个组合题,首先是通过二叉树遍历得到一个序列,然后再通过LeetCode Algorithm 1. 两数之和的方法查 ...

  2. 【LeetCode】剑指 Offer 68 - I. 二叉搜索树的最近公共祖先

    [LeetCode]剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 文章目录 [LeetCode]剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 一.迭代 二.递归 祖先的定义 ...

  3. 《剑指Offer》51. 二叉搜索树的第k个结点

    题目:51. 二叉搜索树的第k个结点 知识点:二叉搜索树 题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8)    中,按结点数值大小顺序第三小结点的值为 ...

  4. 剑指offer 27: 二叉搜索树与双向链表

    题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 解题思路 递归调用左子树: 把原左节点的指针调整为指向链表中指向前一个节点 ...

  5. 剑指offer 24:二叉搜索树的后序遍历序列

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 二叉搜索数的定义:左节点比根节点小,右节 ...

  6. 剑指OFFER之从二叉搜索树的后序遍历序列(九度OJ1367)

    题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 输入: 每个测试案例包括2行: 第一行为1个整数 ...

  7. 【剑指offer】_09二叉搜索树的后序遍历序列

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 比如下面的这棵二叉搜索树 它的后序遍历为 ...

  8. 二叉搜索时与双向链表python_【剑指offer】26 二叉搜索树与双向链表

    - 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. - 解题思路 递归 - Java实现 /**public class ...

  9. 【LeetCode笔记】剑指 Offer 68 - I. 二叉搜索树的最近公共祖先(Java、二叉树、dfs)

    文章目录 思路 & 代码 代码 & 思路 二刷 思路 & 代码 应该在二叉树的最近公共祖先之前写= = 需要用到二叉搜索树的特性- 代码 & 思路 分成四种情况即可,具 ...

最新文章

  1. 身为java程序员你需要知道的网站(包含书籍,面试题,架构...)
  2. Chtml的一些例子
  3. 【】MTCNN基于NCNN的测试过程
  4. MySQL备份原理详解
  5. html的细节优化,网站页面优化细节详解
  6. 使用Phpstorm实现远程开发
  7. VC Studio 使用技巧大全
  8. python n个list如何组成矩阵_学完Python,我决定熬夜整理这篇总结...
  9. Linux服务器数据库的导入和导出
  10. 采访《以魂为中心的领导力》作者之问答
  11. STM32F103mini基础知识归纳
  12. 零基础学python还是c语言-零基础学Python之前需要学c语言吗
  13. Java面向对象之多态(向上、向下转型) 入门实例
  14. Android开发点滴 - 实现层级式导航(API 16+)
  15. 【软件】WPS VBA 7.0.1590(百度云免费下载链接)
  16. 【Verilog基础】Verilog语法之force和release
  17. 千兆网线做法和网线接法注意事项
  18. 笔记20210518正则表达式和面向对象
  19. 利用scrapy爬取东方资讯的新闻
  20. D语言之路-第1篇 库函数之争

热门文章

  1. 判断点是否在多边形内部
  2. hdu1114完全背包
  3. imagemagick, imagick和magickwand的安装
  4. 请问如何获取字符串在数组中的位置
  5. 用VS2008做博客¥(^_^)¥
  6. Golang math/rand 源码剖析避坑指南
  7. C++ string 成员函数 length() size() 和 C strlen() 的区别
  8. 二路归并排序简介及其并行化
  9. 剖析 Vue.js 内部运行机制 (1)
  10. 树形dp——cf1010D