算法通过村第6关【青铜】| 如何通过中序和后序遍历恢复二叉树

中序:3 4 8 6 7 5 2 1 10 9 11 15 13 14 12

后序:8 7 6 5 4 3 2 10 15 14 13 12 11 9 1

通过这两个遍历顺序恢复二叉树

首先我们知道中序遍历顺序左中右,后序遍历顺序左右中

第一步:

由后序遍历确定根结点为1 ==> 由中序遍历划分左右子树3 4 8 6 7 5 2 1 10 9 11 15 13 14 12

第二步:

继续找下层子树根结点: 8 7 6 5 4 3 2 10 15 14 13 12 11 9 1

左子树根结点为2,右子树根结点9,

划分中序:

3 4 8 6 7 5 2 ==> 3 4 8 6 7 5 2

10 9 11 15 13 14 12\] ==\> \[10\] 9 \[11 15 13 14 12

第三步:

继续找下层子树根结点: 8 7 6 5 4 3 2 10 15 14 13 12 11 9 1

左子树根结点为3,右子树根结点11,

划分中序:

3 4 8 6 7 5\] ==\> 3 \[ 4 8 6 7 5

11 15 13 14 12\] ==\> 11 \[15 13 14 12

依次类推最后得出图示:

相关推荐
牢姐与蒯5 小时前
c++高级数据结构之图(基本概念,存储结构,BFS,DFS,最小生成树)
数据结构·c++·
Tongzhi20265 小时前
考勤数据本地化存储:通芝科技无感考勤一体机的数据安全逻辑
大数据·数据结构·科技·均值算法·数据库开发·推荐算法
她说可以呀6 小时前
Spring-ai-Rag-多文件格式生成 List<Document>
数据结构·list
饼饼学习空间智能7 小时前
遥操作数据能否提升机器人自主化水平?详解模仿学习、仿真放大与Sim2Real闭环
人工智能·算法
间歇性努力持续性发呆的野生快乐选手7 小时前
dfs回溯,bfs枚举,完全背包
c++·算法·深度优先·宽度优先
郝学胜_神的一滴8 小时前
干货版《算法导论》17:双数极值配对与卡牌手牌编码最优解
数据结构·算法
nike0good8 小时前
Codeforces Round 1101 (Div. 2) 题解
算法
中年阿甘8 小时前
解析式布局-二次线长布局
线性代数·算法·矩阵
程序喵大人8 小时前
【C++进阶】STL算法与函数对象 -【C++进阶】STL算法与函数对象
开发语言·c++·算法
我不会插花弄玉9 小时前
10.list【由浅入深-C++】
数据结构·c++·list