L2-006 树的遍历 (25 分)
L2-006 树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7 2 3 1 5 7 6 4 1 2 3 4 5 6 7 输出样例: 4 1 6 3 5 7 2 题解 递归建树 代码 # include <iostream> # include <vector> # include <queue> using namespace std ; struct BinTree { int val ; BinTree * left , * right ; } ; vector < int > post_order , in_order ; int n ; BinTree * BuildTree ( BinTree * root , int l , int r , int pl , int pr ) { if ( l > r || pl > pr ) return nullptr ; root = new BinTree ; root - > val = post_order