算法通过村第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]

依次类推最后得出图示:

相关推荐
小竹子145 分钟前
L3-1 夺宝大赛
数据结构·算法·图论
LDG_AGI13 分钟前
【深度学习】多元物料融合算法(一):量纲对齐常见方法
人工智能·深度学习·算法·机器学习·均值算法·哈希算法·启发式算法
EDPJ16 分钟前
(2025|ICLR|厦大&华为,LoSA,基于表示互信息的动态层级稀疏率,基于重构误差的秩分配)LLM 的动态低秩稀疏自适应
深度学习·算法·语言模型
KangkangLoveNLP19 分钟前
从Swish到SwiGLU:激活函数的进化与革命,qwen2.5应用的激活函数
人工智能·深度学习·神经网络·算法·机器学习·自然语言处理·cnn
奔跑的废柴20 分钟前
LeetCode 513. 找树左下角的值 java题解
java·算法·leetcode
Awesome Baron23 分钟前
LeetCode hot 100 每日一题(7)--3. 无重复字符的最长子串
算法·leetcode·职场和发展
SsummerC28 分钟前
【leetcode100】组合总和
数据结构·python·算法·leetcode
反方向的钟儿1 小时前
【数学建模】001
笔记·算法·数学建模
2401_827364566 小时前
迷宫【BFS+结构体\pair】
算法·宽度优先
于慨7 小时前
计算机考研C语言
c语言·开发语言·数据结构