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

依次类推最后得出图示:

相关推荐
安全系统学习9 分钟前
网络安全逆向分析之rust逆向技巧
前端·算法·安全·web安全·网络安全·中间件
菜鸟懒懒2 小时前
exp1_code
算法
Winn~2 小时前
JVM垃圾回收器-ZGC
java·jvm·算法
爱coding的橙子2 小时前
每日算法刷题Day24 6.6:leetcode二分答案2道题,用时1h(下次计时20min没写出来直接看题解,节省时间)
java·算法·leetcode
慢慢慢时光2 小时前
leetcode sql50题
算法·leetcode·职场和发展
pay顿2 小时前
力扣LeetBook数组和字符串--二维数组
算法·leetcode
精神小伙mqpm2 小时前
leetcode78. 子集
算法·深度优先
岁忧2 小时前
(nice!!!)(LeetCode每日一题)2434. 使用机器人打印字典序最小的字符串(贪心+栈)
java·c++·算法·leetcode·职场和发展·go
dying_man2 小时前
LeetCode--18.四数之和
算法·leetcode
无敌的小笼包3 小时前
第四讲:类和对象(下)
数据结构·c++