P1305 新二叉树 就AC了两个用例 求助帮看下哪里有问题
  • 板块P1305 新二叉树
  • 楼主nanase
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/2/26 22:39
  • 上次更新2023/10/28 07:39:24
查看原帖
P1305 新二叉树 就AC了两个用例 求助帮看下哪里有问题
366677
nanase楼主2022/2/26 22:39
#include<cstdio>
#include<iostream>
using namespace std;
string tree[30];
int n,i;
struct Node {
	char val;
	Node* left;
	Node* right;
	Node(char x) :val(x), left(NULL), right(NULL) {};

};

Node* solve(Node* root,string tree[]) {
	if (root == NULL) return root;
	if (root->val == tree[i][0]) {
		if (tree[i][1] != '*') {
			Node* left = new Node(tree[i][1]);
			root->left = left;
		}
		else {
			root->left = NULL;
		}
		if (tree[i][2] != '*') {
			Node* right = new Node(tree[i][2]);
			root->right = right;
		}
		else {
			root->right = NULL;
		}
		i++;
		return root;
	}
	
	solve(root->left, tree);
	solve(root->right, tree);
	
	return root;

}
void printTree(Node* root) {
	if (root == NULL) {
		return;
	}
	cout << root->val ;
	printTree(root->left);
	printTree(root->right);

}


int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		string str;
		cin >> str;
		tree[i] = str;
	}
	Node* root = new Node(tree[0][0]);
	Node* left = new Node(tree[0][1]);
	Node* right = new Node(tree[0][2]);
	root->left = left;
	root->right = right;
	i = 1;
	printTree(solve(root, tree));
	return 0;
}

2022/2/26 22:39
加载中...