GESP 六级 · GESP 202506 C++ 六级 第 12 题

选择题 · 答案 D · 考点:双向BFS

← 整套速查表 GESP 六级 全部真题

题目

给定一个二叉树,返回每一层中最大的节点值,结果以数组形式返回,横线处应填入( )。

#include <vector>
#include <queue>
#include <algorithm>

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x): val(x), left(nullptr), right(nullptr) {}
};

vector<int> largestValues(TreeNode* root) {
    vector<int> result;
    if (!root) return result;

    queue<TreeNode*> q;
    q.push(root);

    while (!q.empty()) {
        int sz = q.size();

        int maxVal = INT_MIN;
        for (int i = 0; i < sz; ++i) {
            ________________________
            maxVal = max(maxVal, node->val);
            if (node->left) q.push(node->left);
            if (node->right) q.push(node->right);
        }
        result.push_back(maxVal);
    }
    return result;
}

A.

node = q.end();

B.

node = q.front();

C.

q.pop();
node = q.front();

D.

node = q.front();
q.pop();
答案:D

考点

双向BFS

解题思维

根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。

常见错误

填空时注意语法完整性:分号、括号匹配、函数参数类型和个数、返回值类型。

详细解析(节选)

【考点】二叉树层级遍历|队列操作|BFS

1. 🎯 考纲定位

本题考查《GESP 六级大纲》"数据结构与算法"模块中的二叉树遍历与队列基本操作,属于经典BFS层级遍历变体。命题人刻意将"先取后弹"的顺序拆成两个空行,卡住那些只背过"要弹要取"却记混先后顺序的考生。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断