目录
题目
题解:
知识点:
分析:
代码:
题目
给定一个二叉树的中序遍历序列和前序遍历序列,先将树左右翻转(对于每个非叶结点,左右子树互换),然后输出翻转后树的层序遍历。二叉树每个结点的值不同。
输入格式
第一行一个整数 N(1≤N≤30) ,表示二叉树结点个数。
第二行 N 个整数,表示二叉树的中序遍历序列。
第三行 N 个整数,表示二叉树的前序遍历序列。
二叉树每个结点的值为不超过 10^9 的正整数。
输出格式
输出一行,包含 N 个整数,表示翻转后二叉树的层序遍历序列。
格式说明
输出时每行末尾的多余空格,不影响答案正确性
输入、输出要求
要求使用「文件输入、输出」的方式解题,输入文件为 binary.in,输出文件为 binary.out
样例输入
3
2 1 3
1 2 3
样例输出
1 3 2
题解:
知识点:
树、大模拟
分析:
直接模拟
注意:
- 所谓翻转,其实就是将原来层序遍历的从左到右遍历的顺序改为从右到左(初三的我)。当然也可以傻傻模拟一遍(六年级的我)。
- 节点数字很大,数组开不下,可以用离散化(六年级的我)。不过用哈希表代替儿子数组更简便一些(初三的我)
代码:
//六年级
#include
#include
#include
#include
#include