算法通关村 | 通过中序和后序序列恢复二叉树

前中后序遍历

记住一点:前指的是中间的父节点在遍历中的顺序,只要大家记住 前中后序指的就是中间节点的位置就可以了。

看如下中间节点的顺序,就可以发现,访问中间节点的顺序就是所谓的遍历方式
前序遍历:中左右
中序遍历:左中右
后序遍历:左右中
在这里插入图片描述

通过中序和后序序列恢复二叉树

通过中序和后序也能恢复原始序列的,唯一的不同是后序序列的最后一个是根节点,中序的处理也是上面一样的过程:
前序:1 2 3 4 5 6 8 7 9 10 11 12 13 15 14
中序: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为根节点,通过中序遍历得到1左边的是左儿子节点[3 4 8 6 7 5 2]右边为右儿子节点[10 9 11 15 13 14 12]

在这里插入图片描述

第二轮

通过后序遍历可以知道倒数第二的9为根节点的右儿子,通过中序遍历得到9左边的是左儿子节点[10]右边为右儿子节点[11 15 13 14 12]

在这里插入图片描述

第三轮

通过后序遍历可以知道119的右儿子,通过中序遍历得到9左边的是左儿子节点[null]右边为右儿子节点[15 13 14 12]

在这里插入图片描述

第四轮

通过后序遍历可以知道1312的右儿子,通过中序遍历得到13左边的是左儿子节点[15]右边为右儿子节点[14]

在这里插入图片描述

第五轮

通过后序遍历可以知道1312的右儿子,通过中序遍历得到13左边的是左儿子节点[15]右边为右儿子节点[14]

在这里插入图片描述

第六轮

接下来到左子树了。

根据后序遍历2为根节点1的左子树,根据中序遍历2的左子树为[3 4 8 6 7 5],右子树为[null]

在这里插入图片描述

第七轮

根据后序遍历3为根节点2的左子树,根据中序遍历3的左子树为[null],右子树为[4 8 6 7 5]

在这里插入图片描述

接下来都一样,直接发结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值