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

L2-011 玩转二叉树

L2-011传送门

这道题与前面的一道题几乎一样😁(*^▽^*)

唯一有变化的就是镜像翻转

  1. 那我们只需要先建右子树,再建左子树就行了。
  2. 或者我们可以正常建树,但是在BFS的时候 , 先让右边入队,再让左边入队。
    你会选择哪一个呢?

实际上,选择第一点最好,因为第二点并没有真正的建树,很多时候,我们必须要在内存上做出改变才行啊。

#include <iostream>
#include <vector>
#include <queue>
#include <unordered_map>using namespace std;int pre[10010], in[10010];
unordered_map<int, int> l, r, pos;int build(int inL, int inR, int preL, int preR)
{if (inL > inR) {return -1;}int root = pre[preL];int k = pos[root];int num = k - inL;// 【核心翻转逻辑】// 原本 build(inL, k - 1, ...) 是左子树,现在赋值给 r[root]// 原本 build(k + 1, inR, ...) 是右子树,现在赋值给 l[root]// 这样在树的物理结构上,左右就彻底颠倒了r[root] = build(inL, k - 1, preL + 1, preL + num);l[root] = build(k + 1, inR, preL + num + 1, preR);return root;
}void bfs(int root)
{if (root == -1) return;queue<int> q;q.push(root);bool first = true;while (!q.empty()){int now = q.front();q.pop();if (!first) cout << " ";cout << now;first = false;// 既然建树时已经翻转,这里依然按照标准【先左后右】入队// 此时输出的就是镜像后的层序if (l.count(now) && l[now] != -1) q.push(l[now]);if (r.count(now) && r[now] != -1) q.push(r[now]);}
}int main()
{int n;cin >> n;for (int i = 0; i < n; i++) cin >> in[i];for (int i = 0; i < n; i++){cin >> pre[i];pos[pre[i]] = i; // 报错预警:注意这里应该是记录中序的下标,即 pos[in[i]] = i}// 严密修正:记录中序下标for (int i = 0; i < n; i++) pos[in[i]] = i;int root = build(0, n - 1, 0, n - 1);bfs(root);cout << endl;return 0;
}
http://www.jsqmd.com/news/480639/

相关文章:

  • 北京宝玑/杭州帕玛强尼/上海万国维修哪里好?六大城市高端腕表维修实用指南 - 时光修表匠
  • Java中的char、String、StringBuilder与StringBuffer 深度详解
  • 6 纠偏调适:承认跑偏,比硬撑更需要勇气
  • 2026年多层钢结构定制服务商哪家好,苏东钢结构值得选吗 - 工业设备
  • AI赋能代码审查:从Git Hook到Gerrit插件的自动化实践指南
  • 【Java 开发日记】我们来说一下无锁队列 Disruptor 的原理
  • 【JavaSE】【多线程】定时器
  • 2026年杭州心理教练哪家好,费用是怎么收取的 - 工业推荐榜
  • JAVA IO流进阶:字符流与字节流的深度应用
  • 2026酯化态虾青素口碑排行榜,解读老牌酯化态虾青素厂家的实力 - mypinpai
  • QT编程(11):Qt 文本高亮实现代码编辑器
  • 货架厂生产厂家源头工厂选科盛如何,口碑和服务好不好? - 工业品牌热点
  • 深圳江诗丹顿/无锡帝舵/南京浪琴维修哪里好?六大城市高端腕表养护指南 - 时光修表匠
  • 【Python】列表
  • 【开源-Proteus8.9仿真】基于51单片机的超声波测距(HC-SR04+ LCD1602) - 少年
  • Python:基础语法
  • php方案 PHP 实现分布式任务调度
  • 分析钢结构厂房制造厂的性价比,苏东钢结构在全国排名如何 - 工业品牌热点
  • 2026年全国网架钢结构施工靠谱厂家有哪些,产品特色大揭秘 - myqiye
  • php方案 PHP 实现协程调度器
  • Python小白必做的30道基础练习题
  • Python 变量和数据类型
  • 探讨2026年全屋定制MES软件,如何选择合适的产品 - 工业推荐榜
  • 2026年GEO优化靠谱公司有哪些,鸿犀智能口碑出众 - mypinpai
  • 最近爆火的OpenClaw到底是什么?一文读懂RAG、MCP
  • Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)
  • AWE 2026:“新人车家”时代,机器人引领家电消费新变革
  • 2026 AWE:具身智能机器人开启家庭服务新时代
  • 大树科技电话查询:综合技术驱动型服务客观解析 - 品牌推荐
  • 【开源-Proteus8.9仿真】基于51单片机的四相步进电机控制(ULN2003 + StepMotor + LCD1602) - 少年