解法:
#include<iostream>
#include<queue>
using namespace std;
struct treeNode {
char val;
treeNode* left;
treeNode* right;
treeNode(char x) :val(x), left(nullptr), right(nullptr) {};
};
treeNode* buildTree() {
char c;
cin >> c;
if (c == '#') return nullptr;
treeNode* root = new treeNode(c);
root->left = buildTree();
root->right = buildTree();
return root;
}
void bfs(treeNode* root) {
queue<treeNode*> que;
if (root == nullptr) return;
que.push(root);
while (!que.empty()) {
int num = que.size();
for (int i = 0; i < num; i++) {
treeNode* cur = que.front();
cout << cur->val;
que.pop();
if (cur->left) que.push(cur->left);
if (cur->right) que.push(cur->right);
}
}
}
int main() {
treeNode* root = buildTree();
bfs(root);
return 0;
}