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

依次类推最后得出图示:

相关推荐
想睡觉 . 我也想睡觉 .几秒前
【C++算法】1.【模板】前缀和
开发语言·c++·算法
mit6.8243 分钟前
[数据结构] LRU Cache | List&Map 实现
算法
yuanbenshidiaos12 分钟前
数据结构----链表头插中插尾插
网络·数据结构·链表
逊嘘22 分钟前
【Java数据结构】LinkedList
java·开发语言·数据结构
Schwertlilien43 分钟前
图像处理-Ch1-数字图像基础
图像处理·人工智能·算法
程序员一诺43 分钟前
【深度学习】嘿马深度学习笔记第10篇:卷积神经网络,学习目标【附代码文档】
人工智能·python·深度学习·算法
刚学HTML2 小时前
leetcode 05 回文字符串
算法·leetcode
Yan.love3 小时前
开发场景中Java 集合的最佳选择
java·数据结构·链表
AC使者3 小时前
#B1630. 数字走向4
算法
冠位观测者3 小时前
【Leetcode 每日一题】2545. 根据第 K 场考试的分数排序
数据结构·算法·leetcode