每天一道算法_9_由后序遍历和中序遍历求前序遍历

假设一棵二叉树的后序遍历序列为 DGJHEBIFCA ,中序遍历序列为 DBGEHJACIF ,求前序遍历。 整体思路是这样的,由后序遍历找到每个节点,然后由中序遍历判断左右子树,将整个二叉树还原后写出前序遍历。后序遍历的顺序知道,最后一个A是二叉树的根节点,然后把中序遍历从A分成两段,A左边的是左子树,A右边的是右子树,结果如下 然后看右边的子树,从后序遍

大家好,又见面了,我是全栈君。

假设一棵二叉树的后序遍历序列为 DGJHEBIFCA ,中序遍历序列为 DBGEHJACIF ,求前序遍历。

 

整体思路是这样的,由后序遍历找到每个节点,然后由中序遍历判断左右子树,将整个二叉树还原后写出前序遍历。

后序遍历的顺序知道,最后一个A是二叉树的根节点,

然后把中序遍历从A分成两段,A左边的是左子树,A右边的是右子树,

结果如下

每天一道算法_9_由后序遍历和中序遍历求前序遍历

 

然后看右边的子树,

从后序遍历知道,左子树的后序遍历为IFC,中序遍历为CIF

问题回到刚开始,重复之前的过程,由后序遍历知道根节点为C,把中序遍历从C分成两段,

左边是左子树,右边是右子树

也就是右边只有一个右子树,

每天一道算法_9_由后序遍历和中序遍历求前序遍历

 

然后再次重复以上过程,现在IF的后序遍历是IF,中序遍历是IF,说明

节点时F,I是F的左子树

每天一道算法_9_由后序遍历和中序遍历求前序遍历

 

这样,这棵二叉树的右子树就完全复原了,左子树的方法完全相同,就是一个递归过程,流程图如下

 

每天一道算法_9_由后序遍历和中序遍历求前序遍历

 

 

NEXT:

每天一道算法_9_由后序遍历和中序遍历求前序遍历

 

 

 

最后得到的完整二叉树如下:

每天一道算法_9_由后序遍历和中序遍历求前序遍历

 

然后写出前序遍历就可以了,是ABDEGHJCFI

用算法可以实现的,暂时留在这。

 

 

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121363.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • iservice list方法_MyBatis-Plus IService<T> 方法汇总[通俗易懂]

    一、IService使用1.getOne(),这个是方法返回结果不止一条则会抛出异常,如果想默认取第一条结果,可以给这方法传第二个参数为false。@TestpublicvoidgetOne(){Userone=userService.getOne(Wrappers.lambdaQuery().eq(User::getAge,31),false);System.out.println…

    2022年4月7日
    332
  • generic host process for win32_hostunreachable怎么解决

    generic host process for win32_hostunreachable怎么解决本人使用的windows2003sp1英文版。昨天开始总是莫明其妙出现GenericHostProcess进程出错提示框,紧跟着svchost内存出错提示框, 之后一些service就停止工作,比如WindowsAudio,必须手动重启才能听音乐;网络连接假死,tcp连接需要重连,不胜其扰。上网搜了些文章,基本上分为三个原因:1,木马病毒。2,系统漏洞。3,硬件驱动问题

    2022年10月10日
    3
  • oracle的nvl函数的使用解析「建议收藏」

    oracle的nvl函数的使用解析「建议收藏」Oracle的Nvl函数 nvl()函数从两个表达式返回一个非null值。 语法NVL(eExpression1,eExpression2) 参数eExpression1,eExpression2 如果eExpression1的计算结果为null值,则NVL()返回eExpression2。如果eExpression1的计

    2022年7月15日
    19
  • idea注释颜色修改_福昕阅读器注释颜色

    idea注释颜色修改_福昕阅读器注释颜色修改IDEA注释颜色

    2022年9月27日
    1
  • pycharm最新激活码2021【2021最新】

    (pycharm最新激活码2021)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月28日
    77
  • net framework 4.0安装失败0x80240037_0x80300001

    net framework 4.0安装失败0x80240037_0x80300001太~不容易了我一定要写个博客。网上的什么dism各种都试过了,都不行后来试了下面这个方法,还是不行,然后死马当活马医重启了一下,没有联网安了一遍,竟然奇迹般地装好了。Cortana中输入服务,回车后查看WindowsUpdate,AppReadiness,CryptographicServices,BackgroundIntelligentTransferService,Win…

    2025年11月3日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号