leetcode算法题--二叉搜索树迭代器
题目链接:https://leetcode-cn.com/problems/binary-search-tree-iterator/
1、排序
将树元素保存到数组中,再对其排序。
class BSTIterator {public:vector<int> v;int pos;BSTIterator(TreeNode* root) {v=sort(root);pos=0;}/** @return the next smallest number */int next() {return v[pos++];}/** @return whether we have a next smallest number */bool hasNext() {if(pos==v.size()){return false;}else{return true;}}vector<int> sort(TreeNode* root){vector<int> v;traversal(root,v);std::sort(v.begin(),v.end());return v;}int traversal(TreeNode* p,vector<int> &v){if(!p){return 0;}v.push_back(p->val);traversal(p->left,v);traversal(p->right,v);return 0;}
};
2、中序遍历
因为是二叉搜索树,可以用中序遍历,栈实现
class BSTIterator {public:stack<TreeNode*> s;BSTIterator(TreeNode* root) {TreeNode* p=root;while(p){s.push(p);p=p->left;}}/** @return the next smallest number */int next() {TreeNode* p=s.top();s.pop();TreeNode *tmp=p->right;while(tmp){s.push(tmp);tmp=tmp->left;}return p->val;}/** @return whether we have a next smallest number */bool hasNext() {if(!s.empty()){return true;}else{return false;}}
};
leetcode算法题--二叉搜索树迭代器相关推荐
- leetcode算法题--二叉搜索树的后序遍历序列
原题链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/ bool verifyP ...
- leetcode算法题--二叉搜索树的最近公共祖先
原题链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian-lcof/ 1.递归 Tre ...
- leetcode算法题--二叉搜索树的第k大节点
原题链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ int kthLargest(Tre ...
- leetcode算法题--二叉搜索树与双向链表
原文链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/ Node *pre = ...
- C#LeetCode刷题-二叉搜索树
二叉搜索树篇 # 题名 刷题 通过率 难度 220 存在重复元素 III 19.3% 中等 315 计算右侧小于当前元素的个数 31.9% 困难 327 区间和的个数 29.5% 困难 352 将数据 ...
- LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)
文章目录 1. 题目 2. 解题 1. 题目 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. 案例 1: 输入: 5/ \3 6/ \ ...
- LeetCode 173. 二叉搜索树迭代器(中序遍历)
文章目录 1. 题目信息 2. 二叉树中序遍历 1. 题目信息 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: B ...
- leetcode 173. 二叉搜索树迭代器
实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象 ...
- Java实现 LeetCode 173 二叉搜索树迭代器
173. 二叉搜索树迭代器 实现一个二叉搜索树迭代器.你将使用二叉搜索树的根节点初始化迭代器. 调用 next() 将返回二叉搜索树中的下一个最小的数. 示例: BSTIterator iterato ...
最新文章
- python运行文件后缀_Python程序存储成以.py为扩展名的程序文件用Python解释器执行。(4.5分)_学小易找答案...
- 005_CSS通配符选择器
- Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框
- 【Tomcat】Tomcat 系统架构与设计模式,第 1 部分: 工作原理
- 20万人仍然每天活跃在“死”掉的ofo APP上:这已变成一个返利应用
- 柴树杉:面向数据科学领域的新语言,Go+蓄势待发
- 灵魂拷问!细数Android开发者的艰辛历程,成功入职阿里
- oracle创建用户名了,oracle创建用户名
- OpenGL在MFC下编程原理
- 10-9 重要的内置函数(zip、filter、map、sorted)
- python驱动级模拟按键大师_AB叔_C#驱动级模拟按键操作
- react小书,怎么渲染列表(react)
- 电商平台商品详情API调用,获取SKU各类信息
- vue[高德地图行车路径规划以及路线记录绘制操作]
- 浅谈机器学习之深度学习
- 鲲鹏devkit开发套件——编译调试工具介绍
- 店群怎么玩?2020最新玩法介绍 胖哥给大家分享干货
- Cause: java.sql.SQLException: Incorrect string value: ‘\xE5\xAE\x9E\xE8\xAE\xAD‘ for column ‘activit
- 帮你全面了解人工智能
- 前程无忧达成私有化协议:遭遇大砍价 作价降至43亿美元
热门文章
- 编程python怎么读-python怎么读sql数据?
- python可以干什么-Python可以用来做什么 为你揭开python神秘面纱
- python常见错误-python中的错误有什么
- python turtle画气球-如何用python的装饰器定义一个像C++一样的强
- python是一种语言还是一个软件-python和GO语言应该选择哪一个?老男孩教育
- python里面的之前打过的记忆信息-python 中 __init__方法
- python读取文件多行内容-python 逐行读取文件的几种方法
- python类中方法的执行顺序-Python中实例化class的执行顺序示例详解
- LeetCode Minimum Depth of Binary Tree
- springmvc常用配置