Я создаю двоичное дерево из строки, используя алгоритм BFS, и у меня есть вопрос: зачем мне писать « TreeNode node = tree.front (); "после while l oop вместо" root = tree.front (); ". Почему я не могу просто использовать уже созданный TreeNode root?
TreeNode* helper(queue<string> &q) {
string data = q.front(); q.pop();
if (data == "#") return NULL;
queue<TreeNode*> tree;
TreeNode* root = new TreeNode(stoi(data));
tree.push(root);
while(!tree.empty()) {
int size = tree.size();
for (int i = 0; i < size; i++) {
TreeNode* node = tree.front();
string newNode = q.front(); q.pop();
if (newNode != "#") {
node -> left = new TreeNode(stoi(newNode));
tree.push(node -> left);
}
string newNode = q.front(); q.pop();
if (newNode != "#") {
node -> right = new TreeNode(stoi(newNode));
tree.push(node -> right);
}
tree.pop();
}
}
return root;
}