二叉搜索树迭代器

题目链接

二叉搜索树迭代器

题目描述


注意点

  • 初始指向根节点
  • next()指向中序遍历中的下一个节点

解答思路

  • 先中序遍历将节点存储到队列中,根据队列先进先出的特点,在调用next()方法时,返回队尾对应的节点并弹出即可

代码

class BSTIterator {
    Deque<TreeNode> deque;

    public BSTIterator(TreeNode root) {
        deque = new ArrayDeque<>();
        inOrderTree(root);
    }
    
    public int next() {
        TreeNode node = deque.pollLast();
        return node.val;
    }
    
    public boolean hasNext() {
        return !deque.isEmpty();
    }

    public void inOrderTree(TreeNode root) {
        if (root == null) {
            return;
        }
        inOrderTree(root.left);
        deque.offerFirst(root);
        inOrderTree(root.right);
    }
}

关键点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/449962.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQLiteC/C++接口详细介绍-sqlite3类(一)

上一篇&#xff1a;SQLiteC/C接口简介 下一篇&#xff1a;SQLiteC/C接口详细介绍&#xff08;二&#xff09; 引言&#xff1a; SQLite C/C 数据库接口是一个流行的SQLite库使用形式&#xff0c;它允许开发者在C和C代码中嵌入 SQLite 基本功能的解决方案。通过 SQLite C/C 数据…

项目案例:多标签文本分类技术在司法行业的应用与挑战

一、引言 随着法律案件数量的激增以及对案件信息快速准确处理的需求日益迫切&#xff0c;司法行业对多标签文本分类技术的应用需求日益增长。本文将介绍多标签文本分类技术在司法行业的具体应用案例&#xff0c;探讨其如何助力法律专业人士处理繁杂的案件资料&#xff0c;优化…

pycharm全局搜索时切换到了繁体和出现乱码的解决方案

看别人代码过程中免不了使用全局 搜索 按照往常 “CtrlShiftF”进行全局搜索即可 但是第一次出现了繁体字&#xff0c;后面还出现乱码的情况了&#xff01; 1.繁体字解决方案 所以在 “设置-时间和语言-输入法选项-拼音选项-按键快捷键” 中修改 1.设置 2. 时间和语言 3.输…

Spring Cloud集成nacos配置中心

1.添加Nacos Config依赖 打开nacos-config-demo的pom.xml文件并添加以下两个依赖项 项目的配置文件中通常包括数据库连接配置项、日志输出配置项、Redis连接配置项、服务注册配置项等内容&#xff0c;如spring-cloud-alibaba-nacos-config-base-demo项目中就包含数据库连接配置…

Node.js作用

Node.js可以开发应用 开发服务器应用 开发工具类应用 开发桌面端应用

电脑怎样改变ip地址?三种方法任你选

更改电脑的IP地址是一个常见的需求&#xff0c;有时候我们可能需要调整网络设置以解决连接问题或保护隐私等。那么&#xff0c;电脑怎样改变ip地址&#xff1f;以下是几种简单快捷的方法任你选。 一、通过控制面板更改IP地址 在Windows操作系统中&#xff0c;可以通过控制面板…

代码生成器之如何快速生成后端接口?

前言 在现代软件开发中&#xff0c;重复性的增删改查逻辑代码的编写往往非常耗时且容易出错。为了提高开发效率&#xff0c;减少手动维护的成本&#xff0c;代码生成器就成为了一个非常重要的工具&#xff0c;本文小编就将为大家介绍一下如何利用一个开源项目快速生成数据接口…

vulhub中Weblogic SSRF漏洞复现

Weblogic中存在一个SSRF漏洞&#xff0c;利用该漏洞可以发送任意HTTP请求&#xff0c;进而攻击内网中redis、fastcgi等脆弱组件。 访问http://your-ip:7001/uddiexplorer/&#xff0c;无需登录即可查看uddiexplorer应用。 SSRF漏洞测试 SSRF漏洞存在于http://your-ip:7001/ud…

如何利用WebRTC构建点对点的即时通讯工具

在当今竞争激烈的商业环境中&#xff0c;企业越来越需要构建自己的即时通讯工具来提升内部沟通效率和信息安全&#xff0c;减少第三方工具依赖带来的潜在风险&#xff0c;并能与自身的行业业务深入融合。 拥有专用的通讯平台能够加快信息的流动&#xff0c;提升工作协同和任务执…

傅里叶变换算法和Python代码实现

傅立叶变换是物理学家、数学家、工程师和计算机科学家常用的最有用的工具之一。本篇文章我们将使用Python来实现一个连续函数的傅立叶变换。 我们使用以下定义来表示傅立叶变换及其逆变换。 设 f: ℝ → ℂ 是一个既可积又可平方积分的复值函数。那么它的傅立叶变换&#xff…

python-0002-linux安装pycharm

下载软件包 下载地址&#xff1a;https://download.csdn.net/download/qq_41833259/88944791 安装 # 解压 tar -zxvf 你的软件包 # 进入软件解压后的路径&#xff0c;如解压到了/home/soft/pycharm cd /home/soft/pycharm cd bin # 执行启动命令 sh pycharm.sh # 等待软件启…

【蓝桥杯嵌入式】四、各种外设驱动(三)NVIC中断程序通用步骤——分析与配置

由于内容比较多&#xff0c;为了更详细的说明&#xff0c;我也会花比较多的时间研究。而为了及时更新&#xff0c;我会把有些文章分成几个部分&#xff0c;谢谢大家理解 。 目录 一、需求分析 1、需要的外设资源分析&#xff1a; 2、外设具体分析&#xff1a; 3、软件分析 …

协议-http协议-基础概念04-长短连接-重定向-cookie-缓存-代理

参考来源&#xff1a; 极客时间-透视HTTP协议(作者&#xff1a;罗剑锋)&#xff1b; 01-长短连接 HTTP 协议最初&#xff08;0.9/1.0&#xff09;是个非常简单的协议&#xff0c;通信过程也采用了简单的“请求 - 应答”方式。 它底层的数据传输基于 TCP/IP&#xff0c;每次发…

JVM 面试——G1和ZGC的区别

ZGC是一款JDK 11中新加入的具有实验性质的低延迟垃圾收集器ZGC的目标主要有4个 支持TB量级的堆。我们生产环境的硬盘还没有上TB呢&#xff0c;这应该可以满足未来十年内&#xff0c;所有JAVA应用的需求了吧。最大GC停顿时间不超10ms。目前一般线上环境运行良好的JAVA应用Minor …

Node携手MongoDB探险旅行⛏️

Node携手MongoDB探险旅行⛏️ 本篇文章&#xff0c;学习记录于&#xff1a;尚硅谷&#x1f3a2; 文章简单学习总结&#xff1a;如有错误 大佬 &#x1f449;点. 本篇不适合纯新手&#xff0c;因为本人已经使用很多数据库&#xff0c;很多数据库概念…就不会进行解释&#xff…

政务网站安全合规之道,云监测提供优质监测解决方案

近年来&#xff0c;国家对于网站安全风险的问题重视程度不断提升&#xff0c;持续加强对网站安全的监管力度。特别是政务网站&#xff0c;承载着越来越重要的核心应用和数据&#xff0c;与普通网站相比更容易遭到来自互联网的攻击。 攻击者为了破坏政务形象、干扰政务工作秩序或…

个人职业规划的制定方法

在竞争激烈的职场环境中&#xff0c;一个明确的职业规划对于个人发展至关重要。本文将探讨我的个人职场规划&#xff0c;包括短期和长期目标&#xff0c;以及实现这些目标所需的策略和行动。 一、自我评估 1.1 职业兴趣&#xff1a;我对市场营销和数据分析领域充满热情&#xf…

【React】AntV G6 - 快速入手

环境 react&#xff1a; ^18next: 14.1.0antv/g6: ^4.8.24 安装 npm install antv/g6# or pnpm add antv/g6# or yarn add antv/g6使用 模拟数据 const data {nodes: [ // 节点信息{id: "node1",data: {name: "Circle1"}},{id: "node2",d…

【JavaScript 漫游】【034】AJAX

文章简介 本篇文章为【JavaScript 漫游】专栏的第 034 篇文章&#xff0c;对浏览器模型的 XMLHttpRequest 对象&#xff08;AJAX&#xff09;的知识点进行了总结。 XMLHttpRequest 对象概述 浏览器与服务器之间&#xff0c;采用 HTTP 协议通信。用户在浏览器地址栏键入一个网…

面试问答之MySQL数据库进阶

文章目录 &#x1f412;个人主页&#xff1a;信计2102罗铠威&#x1f3c5;JavaEE系列专栏&#x1f4d6;前言&#xff1a;&#x1f380; MySQL架构&#x1f415;数据库引擎&#x1f415; InnoDB存储存储引擎&#x1f415;MYISAM &#x1f3e8;索引&#x1f415;哪些情况需要创建…