GESP C++ 真题 · 逐题精解
首页C++六级真题 › 2026年6月 › 第8题

GESP 2026年6月 C++六级 判断题 第8题

C++六级判断题2026年6月第8题

所属知识点:广度优先搜索(BFS) 难度要求:— 考频:—

以下代码可以正确地按层换行输出二叉树的节点值。
void printByLevel(TreeNode* root) {
    if (!root) return;
    queue<TreeNode*> q;
    q.push(root);
    while (!q.empty()) {
        for (int i = 0; i < q.size(); ++i) {
            TreeNode* cur = q.front(); q.pop();
            cout << cur->val << " ";
            if (cur->left) q.push(cur->left);
            if (cur->right) q.push(cur->right);
        }
        cout << endl;
    }
}

正确答案:错误(×)

题目解析
内层 for 用 i < q.size() 作条件,而 q.size() 在循环中边出队边入队不断变化,导致「一层」的边界判断错误,无法正确按层换行。应在循环前先 int sz = q.size() 固定本层数量。说法错误,选 ×。💡 分层 BFS 必须先把当前层大小存下来。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习