已知二叉树的前序,中序,后序遍历中的两种求另外一种遍历

  • 二叉树的遍历分为三种:
    1.前序遍历
    2.中序遍历
    3.后序遍历

  • 三种遍历的特征
    前序遍历:中左右
    中序遍历:左中右
    后序遍历:左右中

  • 根据已知的两种遍历方式求第三种,有三种组合方式

    • 第一种情况:已知前序遍历,中序遍历求后序遍历

      前序:ABDECFG 中序:DBEAFCG

    • 解法:
      前序的第一个节点就是根节点,     
      中序中找到根节点的位置,根节点之前是其左子树,之后是右子树    
      按此顺序,依次在左子树部分遍历,右子树部分遍历

    • 第二种情况:已知后序遍历,中序遍历求后序遍历

      后序:ABDECFG 中序:DBEAFCG

    • 解法:
      前序的第一个节点就是根节点,     
      中序中找到根节点的位置,根节点之前是其左子树,之后是右子树    
      按此顺序,依次在左子树部分遍历,右子树部分遍历

    • 第三种情况:已知前序遍历和后序遍历求中序遍历

      这种情况并不能完全的求出所有情况的二叉树中序遍历。因为由前序和后序并不能完全确定一颗树。但是,如果已知是满二叉树或者完全二叉树的话,我想是可以的。

      前序的第一个节点和后序的最后一个节点一定是根节点,如果前序的第二个节点与后序的倒数第二个节点不相等,那么前序的第二节点是根的左子树,后序的倒数第二节点是根的右子树(但是 如果前序的第二个节点与后序的倒数第二个节点相等,那就不能确定到底是左子树还是右子树了,因为缺省一个子树中左与左中,中右与右中都会相等。所以这就需要题目有要求该树的特征了)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值