invalid memory reference提交上去全RE?(样例没问题)
查看原帖
invalid memory reference提交上去全RE?(样例没问题)
615989
Mathemartist楼主2023/12/5 14:36
#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
const int maxn=300;
struct TreeNode{
	char val;
	struct TreeNode* l;
	struct TreeNode* r;
};
int n;
struct TreeNode* idx[maxn]={NULL
};
void preordertraverse(struct TreeNode* index){
	if(index){
		printf("%c",index->val);
		preordertraverse(index->l);
		preordertraverse(index->r);
	}
}
int father[300];
int is_in_tree[300];
int main(){
	scanf("%d",&n);
	for(int i=0;i<=300;i++){
		idx[i]=(struct TreeNode*)malloc(sizeof(struct TreeNode));
		idx[i]->val=i+96;
		idx[i]->l=NULL;
		idx[i]->r=NULL;
	}
	while(n--){
		char x[3];
		scanf("%s",x);
		x[0]=x[0]-'a'+1;
		is_in_tree[x[0]]=1;
        if(x[1]>='a'&&x[1]<='z'){
            idx[x[0]]->l=idx[x[1]-'a'+1];
            father[x[1]-'a'+1]=1;
            is_in_tree[x[1]-'a'+1]=1;
		}
	    if(x[2]>='a'&&x[2]<='z'){
	    	idx[x[0]]->r=idx[x[2]-'a'+1];
	    	father[x[2]-'a'+1]=1;
	    	is_in_tree[x[2]-'a'+1]=1;
		}
	}
	int root;
	for(int i=1;i<=26;i++){
		if(father[i]==0&&is_in_tree[i]==1){
			root=i;
			break;
		}
	}
	preordertraverse(idx[root]);
	return 0;
}
2023/12/5 14:36
加载中...