剑指 Offer II 055. 二叉搜索树迭代器
链接:剑指 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. 二叉搜索树迭代器相关推荐
- LeetCode Algorithm 剑指 Offer II 056. 二叉搜索树中两个节点之和
剑指 Offer II 056. 二叉搜索树中两个节点之和 Ideas 这题有点类似一个组合题,首先是通过二叉树遍历得到一个序列,然后再通过LeetCode Algorithm 1. 两数之和的方法查 ...
- 【LeetCode】剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
[LeetCode]剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 文章目录 [LeetCode]剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 一.迭代 二.递归 祖先的定义 ...
- 《剑指Offer》51. 二叉搜索树的第k个结点
题目:51. 二叉搜索树的第k个结点 知识点:二叉搜索树 题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为 ...
- 剑指offer 27: 二叉搜索树与双向链表
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 解题思路 递归调用左子树: 把原左节点的指针调整为指向链表中指向前一个节点 ...
- 剑指offer 24:二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 二叉搜索数的定义:左节点比根节点小,右节 ...
- 剑指OFFER之从二叉搜索树的后序遍历序列(九度OJ1367)
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 输入: 每个测试案例包括2行: 第一行为1个整数 ...
- 【剑指offer】_09二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 比如下面的这棵二叉搜索树 它的后序遍历为 ...
- 二叉搜索时与双向链表python_【剑指offer】26 二叉搜索树与双向链表
- 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. - 解题思路 递归 - Java实现 /**public class ...
- 【LeetCode笔记】剑指 Offer 68 - I. 二叉搜索树的最近公共祖先(Java、二叉树、dfs)
文章目录 思路 & 代码 代码 & 思路 二刷 思路 & 代码 应该在二叉树的最近公共祖先之前写= = 需要用到二叉搜索树的特性- 代码 & 思路 分成四种情况即可,具 ...
最新文章
- 身为java程序员你需要知道的网站(包含书籍,面试题,架构...)
- Chtml的一些例子
- 【】MTCNN基于NCNN的测试过程
- MySQL备份原理详解
- html的细节优化,网站页面优化细节详解
- 使用Phpstorm实现远程开发
- VC Studio 使用技巧大全
- python n个list如何组成矩阵_学完Python,我决定熬夜整理这篇总结...
- Linux服务器数据库的导入和导出
- 采访《以魂为中心的领导力》作者之问答
- STM32F103mini基础知识归纳
- 零基础学python还是c语言-零基础学Python之前需要学c语言吗
- Java面向对象之多态(向上、向下转型) 入门实例
- Android开发点滴 - 实现层级式导航(API 16+)
- 【软件】WPS VBA 7.0.1590(百度云免费下载链接)
- 【Verilog基础】Verilog语法之force和release
- 千兆网线做法和网线接法注意事项
- 笔记20210518正则表达式和面向对象
- 利用scrapy爬取东方资讯的新闻
- D语言之路-第1篇 库函数之争