当前位置: 首页 > news >正文

深圳网站制作搜行者seo今天实时热搜榜排名

深圳网站制作搜行者seo,今天实时热搜榜排名,武陟网站建设,虚拟货币做空网站实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在…

实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器:

  • BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在于 BST 中的数字,且该数字小于 BST 中的任何元素。
  • boolean hasNext() 如果向指针右侧遍历存在数字,则返回 true ;否则返回 false 。
  • int next()将指针向右移动,然后返回指针处的数字。

注意,指针初始化为一个不存在于 BST 中的数字,所以对 next() 的首次调用将返回 BST 中的最小元素。

你可以假设 next() 调用总是有效的,也就是说,当调用 next() 时,BST 的中序遍历中至少存在一个下一个数字。

示例:

输入
["BSTIterator", "next", "next", "hasNext", "next", "hasNext", "next", "hasNext", "next", "hasNext"]
[[[7, 3, 15, null, null, 9, 20]], [], [], [], [], [], [], [], [], []]
输出
[null, 3, 7, true, 9, true, 15, true, 20, false]解释
BSTIterator bSTIterator = new BSTIterator([7, 3, 15, null, null, 9, 20]);
bSTIterator.next();    // 返回 3
bSTIterator.next();    // 返回 7
bSTIterator.hasNext(); // 返回 True
bSTIterator.next();    // 返回 9
bSTIterator.hasNext(); // 返回 True
bSTIterator.next();    // 返回 15
bSTIterator.hasNext(); // 返回 True
bSTIterator.next();    // 返回 20
bSTIterator.hasNext(); // 返回 False

提示:

  • 树中节点的数目在范围 [1, 105] 内
  • 0 <= Node.val <= 106
  • 最多调用 105 次 hasNext 和 next 操作

进阶:

  • 你可以设计一个满足下述条件的解决方案吗?next() 和 hasNext() 操作均摊时间复杂度为 O(1) ,并使用 O(h) 内存。其中 h 是树的高度。

思路一:中序遍历

c++解法

class BSTIterator {
private:TreeNode* root;vector<int> t;int cnt;
public:BSTIterator(TreeNode* root) : root(root), cnt(0) {stack<TreeNode*> s;if (root == nullptr) return;while (root || !s.empty()) {while (root) {s.push(root);root = root->left;}if (!s.empty()) {root = s.top();s.pop();t.emplace_back(root->val);root = root->right;}}}int next() {return cnt < t.size() ? t[cnt++] : 0;}bool hasNext() {return cnt < t.size();}
};

分析:

本题可转换为求二叉树的中序遍历,利用栈来存储二叉树节点,先放入二叉树左子树,当左子树放完后再放入右子树,输出的时候根据栈中节点存放位置来输出,时间复杂度为O(n),空间复杂度为O(n)

总结:

本题考察对二叉树中序遍历的应用,利用栈来存储节点可使后面查找时的时间复杂度降低

http://www.khdw.cn/news/69919.html

相关文章:

  • 校园论坛网站怎么做南平seo
  • 基层档案网站建设seo是什么意思呢
  • 顺的网站建设教程微信小程序开发零基础入门
  • 西峰住房和城乡建设局网站南京seo优化推广
  • 电商网站那些功能用到静态化功能市场调研报告范文模板
  • 新疆建设兵团125团网站你对网络营销的理解
  • 网页与网站设计说明seo外包公司哪家专业
  • wordpress 文章 二维码自助优化排名工具
  • 沈阳市住房和城乡建设局网站首页手机搜索引擎排行榜
  • 响应式网站用什么软件做效果沈阳百度seo
  • 帮别人做网站需要什么能力网络营销策划书2000字
  • 正版传奇手游官方网站郑州seo优化外包顾问
  • 学做ppt的网站链接制作软件
  • 刚做的网站适合做外链吗拓客公司联系方式
  • 什么叫网站app疫情最新消息
  • 龙岗seo培训杭州网站推广优化
  • 门户网站建设开发需要注意什么无锡网站推广公司
  • 电信做网站吗dw网站制作
  • php网站开发背景介绍深圳产品网络推广
  • 长春网站建设索q479185700腾讯广告推广平台入口
  • 烟台网站建设技术托管国内手机怎么上google浏览器
  • 邯郸手机网站开发价格bt蚂蚁
  • 免费建电子商务网站百度指数查询
  • 做政府网站建设哪家好跨境电商平台有哪些?
  • 室内设计效果图多少钱四川seo选哪家
  • 做类似于58同城的网站seo检查工具
  • 生物科技企业网站做的比较好的关键词优化公司哪家强
  • 个人如何建设电子商务网站宁波网站制作与推广价格
  • 做胎压的网站自助建站seo
  • 个人可以做哪些网站app推广接单平台哪个好