已知先序遍历为:ADCEFGHIJB,中序遍历为:CDFEGIHJAB,后序遍历该是什么?
这个类型的题目我们首先要画出二叉树,如下图:
先序遍历算法:根做头,左右遍历;
中序遍历算法:左根右(先找到最左边,在再找根再找到右边);
后序遍历算法:左右根(同上)。
从先序ADCEFGHIJB,中序CDFEGIHJAB得到 A为根、左树DCEFGHIJ、右树为B(这个B有点孤单);
去掉根A,左树先序为DCEFGHIJ,中序为CDFEGIHJ可得D为次根,中序 C D FEGIHJ;
去掉次根D,左树为C右树先序为EFGHIJ,中序为FEGIHJ可得E为次次根,再看中序得 F E GIHJ;
去掉E,左树F右树先序GHIJ,中序GIHJ,所以得到G左边没有分叉,右边G IHJ;
去掉G,右树先序HIJ,中序IHJ,可得 I H J。
版权声明:本文为lidadeboke原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。