博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树还原(前序+中序推后序)
阅读量:5146 次
发布时间:2019-06-13

本文共 513 字,大约阅读时间需要 1 分钟。

PreOrder:         GDAFEMHZ
InOrder:            ADEFGHMZ
我们如何还原这颗二叉树,并求出他的后序遍历?

我们基于一个事实:中序遍历一定是 { 左子树中的节点集合 },root,{ 右子树中的节点集合 },前序遍历的作用就是找到每颗子树的root位置。

输入:前序遍历,中序遍历

1、寻找树的root,前序遍历的第一节点G就是root。
2、观察前序遍历GDAFEMHZ,知道了G是root,剩下的节点必然在root的左或右子树中的节点。
3、观察中序遍历ADEFGHMZ。其中root节点G左侧的ADEF必然是root的左子树中的节点,G右侧的HMZ必然是root的右子树中的节点,root不在中序遍历的末尾或开始就说明根节点的两颗子树都不为空。
4、观察左子树ADEF,按照前序遍历的顺序来排序为DAFE,因此左子树的根节点为D,并且A是左子树的左子树中的节点,EF是左子树的右子树中的节点。
5、同样的道理,观察右子树节点HMZ,前序为MHZ,因此右子树的根节点为M,左子节点H,右子节点Z。

引自:

转载于:https://www.cnblogs.com/Esquecer/p/10557929.html

你可能感兴趣的文章
CSS最常用和实用的技巧
查看>>
系统设计基础第六周学习总结
查看>>
leetcode 11 Container with Most Water
查看>>
Linux目录结构
查看>>
PLSQLDeveloper_免安装自带client
查看>>
python三级联动
查看>>
CCString 类
查看>>
1505: 酷酷的单词
查看>>
小白实习趣事
查看>>
nginx正向代理SFTP整体配置方案
查看>>
JS 中按键处理
查看>>
Android 4.1 APP中的static变量即使在APP退出后仍然不会被擦除
查看>>
JAVA环境的JAVA_HOME, PATH 和CLASS_PATH设置
查看>>
java tomcat linux 环境变量设置
查看>>
html form action
查看>>
记一次Oracle Clusterware成功安装后的故障处理
查看>>
工作笔记-javascript-网络层封装
查看>>
Laravel Relationship Events
查看>>
求一个有一千个元素的整数数组的最大子数组的和
查看>>
普天C++笔试题
查看>>