Language
|
Pattern

Level Order BFS

Trees

if (root == nullptr) {
    return {};
}

std::queue<TreeNode*> queue;
std::vector<std::vector<int>> answer;

queue.push(root);

while (!queue.empty()) {
    int levelSize = queue.size();
    std::vector<int> level;

    for (int i = 0; i < levelSize; i++) {
        TreeNode* node = queue.front();
        queue.pop();

        level.push_back(node->val);

        if (node->left != nullptr) {
            queue.push(node->left);
        }

        if (node->right != nullptr) {
            queue.push(node->right);
        }
    }

    answer.push_back(level);
}

return answer;