已知二叉树的两种遍历求第三种遍历

以下面这张图为例,如果已知它的前序遍历和中序遍历,求得它的后序遍历。方法如下:

已知前序遍历为(根左右):1、2、4、8、9、5、10、3、6、7(1 2 4 8 9 5 10 3 6 7)

已知中序遍历为(左根右):8、4、9、2、10、5、1、6、3、7(8 4 9 2 10 5 1 6 3 7)

求后序遍历:首先看到前序遍历,可以得到第一个根节点为1,中序遍历中,1前面的都属于1的左节点的(即8、4、9、2、10、5为左节点,6、3、7为右节点),则2一定是1的左节点,1左边的数字在前序遍历中对应到10,则前序遍历中10以后的数字3为1的右节点。接下来的判断和判断1的左右节点的规律如出一致。

以2为根节点前序遍历为:2、4、8、9、5、10,中序遍历为:8、4、9、2、10、5

从前序遍历中判断根节点为2,从中序遍历中可以判断2存在左右节点,其左节点包括8、4、9,右节点包括10、5,接下来从前序便利中可以判断4为8、9的根节点,即2的左节点,5为2的右节点。

以1的右节点3为根节点,前序遍历为:3、6、7,中序遍历为6、3、7,节点的判断方法同上,不再赘述。

最终可以得到一整个二叉树的图,后序遍历自然也就容易得出了。

 

转载于:https://www.cnblogs.com/jincheng81/p/9213932.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值