1、知道先序,中序,唯一确定一颗二叉树
2、这里用递归方式输出二叉树
先序字符串 s1 (下标范围 [L1, R1]), 第一个字母是 根节点
后序字符串 s2 (下标范围 [L2, R2]), 找到根节点(和 s1 的第一个字母相同, 假如下标是k),
然后根节点把s2 分为左右两半, 左子树有 k - L2个节点, 右子树有 R2 - k 个节点
3、从 s1 的 第 L1 + 1 的位置开始,数 k - L2 个节点 与 s2 的左子树 配对,
剩下的再和右子树配对
4、递归边界
if(l1 > r1 || l2 > r2)
{
return;
}
#include <cstdio>
#include <cstring>
using namespace std;
const int MaxN = 10010;
char s1[MaxN]