本题目要求用后序序列和中序序列构造一棵二叉树(树中结点个数不超过10个),并输出其先序序列。
输入格式:
在第一行中输入元素个数。
第二行中输入后序序列,用空格分隔。
第三行中输入中序序列,用空格分隔。
输出格式:
输出此二叉树的先序序列,用空格分隔,最后也有一个空格。
输入样例:
5
20 40 50 30 10
20 10 40 30 50
输出样例:
10 20 30 40 50
参考代码
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树的结点结构
typedef struct TreeNode {
int value;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 创建新结点
TreeNode* createNode(int value) {
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
newNode->value = value;
newNode->left =