创建四叉树在输入数据的时候结束不了,一直在输入数据,代码要怎么改呢创建四叉树在输入数据的时候结束不了,一直在输入数据

创建四叉树在输入数据的时候结束不了,一直在输入数据,无法跳出嵌套循环

如下所示:

#include <iostream>

struct Node {
    int data;
    Node* children[4];

    Node(int value) : data(value) {
        for (int i = 0; i < 4; ++i) {
            children[i] = nullptr;
        }
    }
};

Node* createQuadTree() {
    int value;
    std::cout << "Enter data (or -1 to stop): ";
    std::cin >> value;

    if (value == -1) {
        return nullptr;
    }

    Node* newNode = new Node(value);

    for (int i = 0; i < 4; ++i) {
        std::cout << "Enter child " << i << " of " << value << ":\n";
        newNode->children[i] = createQuadTree();
    }

    return newNode;
}

void printQuadTree(Node* root) {
    if (root == nullptr) {
        return;
    }

    std::cout << root->data << " ";

    for (int i = 0; i < 4; ++i) {
        printQuadTree(root->children[i]);
    }
}

void deleteQuadTree(Node* root) {
    if (root == nullptr) {
        return;
    }

    for (int i = 0; i < 4; ++i) {
        deleteQuadTree(root->children[i]);
    }

    delete root;
}

int main() {
    Node* root = createQuadTree();

    std::cout << "QuadTree:\n";
    printQuadTree(root);
    std::cout << std::endl;

    deleteQuadTree(root);

    return 0;
}