知识点:二叉树
需要注意的点:层序遍历的最后不能输出空格,否则会WA
又是傻逼错误找了半天,第一个是输入处理的时候后面的那个括号忘记去了,第二个是输出层序遍历的时候最后面不能有空格,我在那里看的icpc的格式不像pat的那么严格,后面有空格都不管的,就没有去,结果也是wa了,去掉就过了
这道题我的思路就是先建树,然后层序遍历,难点就在建树上面,需要分类讨论,即使如此我也觉得这个题没有难到蓝题,
字符串为空,说明这个时候就要插入节点了,最后面要返回,如果节点为空,那么我们插入节点,如果节点不为空,里面的值为-1,还是正常更新,如果节点不为空,里面的值不是-1,那么说明这是多次插入同一个节点了,更新全局标志变量为否,
字符串不为空,说明还要向下接着递归,但是要先判断一下当前根节点是不是-1,如果是,说明这个位置的节点还没有,那么创建一下,更新值为-1,方便后面插入或者层序遍历的时候判断,然后,接着向下递归就行了,
#include <bits/stdc++.h>
using namespace std;
struct node {
int val;
int lchild, rchild;
} tree[300];
int tot;
bool flag = true;
vector<int> ans;
void insert(int &root, int val, string s) {
if (s ==