二叉树前序、中序、后序遍历相互求法

本文介绍了如何根据已知的二叉树中序和后序遍历结果,求解前序遍历的方法。通过分析后序遍历的最后一个节点为根节点,结合中序遍历的特点划分左右子树,并递归地找出左右子树的根节点,最终还原整个二叉树的前序遍历。示例中,给定的中序遍历为ADEFGHMZ,后序遍历为AEFDHZMG,经过步骤分析得到前序遍历为GDAFEMHZ。
摘要由CSDN通过智能技术生成

二叉树前序、中序、后序遍历相互求法

今天在刷题目的时候,遇到了一个二叉树遍历的问题  以前上课的时候数据结构老师讲过 现在回忆起来还是记不太清了 后面网上参考资料

整理如下:

前序、中序、后序遍历的特性如下: 
前(先)序遍历: 
    1.访问根节点 
    2.前序遍历左子树 
    3.前序遍历右子树 
中序遍历: 
    1.中序遍历左子树 
    2.访问根节点 
    3.中序遍历右子树 
后序遍历: 
    1.后序遍历左子树 
    2.后序遍历右子树 
    3.访问根节点

总结了一个口诀:

先序:根--左--右

中序:左--根--右

后序:左--右--根

 

二、已知中序和后序遍历,求前序遍历

中序遍历:       ADEFGHMZ

后序遍历:       AEFDHZMG

画树求法:
第一步,根据后序遍历的特点,我们知道后序遍历最后一个结点即为根结点,即根结点为G。

第二步,观察中序遍历ADEFGHMZ。其中root节点G左侧的ADEF必然是root的左子树,G右侧的HMZ必然是root的右子树。

第三步,观察左子树ADEF,左子树的中的根节点必然是大树的root的leftchild。在前序遍历中,大树的root的leftchild位于root之后,所以左子树的根节点为D。

第四步,同样的道理,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值