题目链接: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算法题--二叉搜索树迭代器相关推荐

  1. leetcode算法题--二叉搜索树的后序遍历序列

    原题链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/ bool verifyP ...

  2. leetcode算法题--二叉搜索树的最近公共祖先

    原题链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian-lcof/ 1.递归 Tre ...

  3. leetcode算法题--二叉搜索树的第k大节点

    原题链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ int kthLargest(Tre ...

  4. leetcode算法题--二叉搜索树与双向链表

    原文链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/ Node *pre = ...

  5. C#LeetCode刷题-二叉搜索树

    二叉搜索树篇 # 题名 刷题 通过率 难度 220 存在重复元素 III 19.3% 中等 315 计算右侧小于当前元素的个数 31.9% 困难 327 区间和的个数 29.5% 困难 352 将数据 ...

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

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

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

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

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

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

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

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

最新文章

  1. python运行文件后缀_Python程序存储成以.py为扩展名的程序文件用Python解释器执行。(4.5分)_学小易找答案...
  2. 005_CSS通配符选择器
  3. Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框
  4. 【Tomcat】Tomcat 系统架构与设计模式,第 1 部分: 工作原理
  5. 20万人仍然每天活跃在“死”掉的ofo APP上:这已变成一个返利应用
  6. 柴树杉:面向数据科学领域的新语言,Go+蓄势待发
  7. 灵魂拷问!细数Android开发者的艰辛历程,成功入职阿里
  8. oracle创建用户名了,oracle创建用户名
  9. OpenGL在MFC下编程原理
  10. 10-9 重要的内置函数(zip、filter、map、sorted)
  11. python驱动级模拟按键大师_AB叔_C#驱动级模拟按键操作
  12. react小书,怎么渲染列表(react)
  13. 电商平台商品详情API调用,获取SKU各类信息
  14. vue[高德地图行车路径规划以及路线记录绘制操作]
  15. 浅谈机器学习之深度学习
  16. 鲲鹏devkit开发套件——编译调试工具介绍
  17. 店群怎么玩?2020最新玩法介绍 胖哥给大家分享干货
  18. Cause: java.sql.SQLException: Incorrect string value: ‘\xE5\xAE\x9E\xE8\xAE\xAD‘ for column ‘activit
  19. 帮你全面了解人工智能
  20. 前程无忧达成私有化协议:遭遇大砍价 作价降至43亿美元

热门文章

  1. 编程python怎么读-python怎么读sql数据?
  2. python可以干什么-Python可以用来做什么 为你揭开python神秘面纱
  3. python常见错误-python中的错误有什么
  4. python turtle画气球-如何用python的装饰器定义一个像C++一样的强
  5. python是一种语言还是一个软件-python和GO语言应该选择哪一个?老男孩教育
  6. python里面的之前打过的记忆信息-python 中 __init__方法
  7. python读取文件多行内容-python 逐行读取文件的几种方法
  8. python类中方法的执行顺序-Python中实例化class的执行顺序示例详解
  9. LeetCode Minimum Depth of Binary Tree
  10. springmvc常用配置