尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

026.二叉搜索树迭代器

026.二叉搜索树迭代器
📅 发布时间:2026/6/18 20:26:18

升序遍历一棵二叉搜索树

API:

  • BSTIterator(TreeNode* root)初始化

  • int next() 将指针向右移动,然后返回指针处的数字

  • bool hasNext()如果向指针右侧遍历存在数字,则返回 true 否则返回 false

  • int peak() 返回当前指针处的数字

/*** 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 {stack<TreeNode*>st;//用栈模拟递归void pushleft(TreeNode*p){//一路向左,全部进栈,最后栈顶是最小元素while(p){st.push(p);p=p->left;}}
public:BSTIterator(TreeNode* root) {pushleft(root);}int next() {auto p=st.top();st.pop();pushleft(p->right);//出栈后右孩子进栈return p->val;}bool hasNext() {return st.size();}int peak() {return st.top()->val;}};

leetcode 173

简单应用

给你 root1 和 root2 这两棵二叉搜索树
请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序

leetcode 1305

  • 利用迭代器将树转化成链表

  • 合并有序链表(类比归并排序)

class Solution {class BSTIterator {//…………};public:vector<int> getAllElements(TreeNode* root1, TreeNode* root2) {BSTIterator s1(root1);BSTIterator s2(root2);vector<int>ans;while(s1.hasNext()&&s2.hasNext()){if(s1.peak()<s2.peak()){ans.push_back(s1.next());}else ans.push_back(s2.next());}while(s2.hasNext())ans.push_back(s2.next());while(s1.hasNext())ans.push_back(s1.next());return ans;}
};

相关新闻

  • 2025法那科注塑机螺杆厂家榜单 - 栗子测评
  • 保险理赔图像识别提速:TensorRT镜像带来效率革命
  • 基于微信小程序的新生报到系统的设计与实现毕业设计(源码+lw+部署文档+讲解等)

最新新闻

  • 北京婚约解除纠纷律所排名:精神损害赔偿实务探讨 - 品牌2026
  • 2026年昆明婚纱照行业发展趋势与热门风格解析 - 速递信息
  • 深入解析MC9S08AC60 TPM模块:输入捕获、输出比较与PWM实战
  • 首饰回收怕被笼统估价?添价收分项精评更公道 - 沉迷学习28
  • 如何实现完美的移动端网格布局:Layout Grid触屏拖放体验终极指南
  • grunt-contrib-cssmin错误处理与调试:常见问题解决指南

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号