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

选择题 · 答案 B · 考点:递推

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

题目

给定一棵二叉树,采用广度优先搜索(BFS)算法,返回右视图所有节点的值。其中右视图定义为:二叉树的右视图是从树的右侧看过去时可见的节点集合,即右视图中的每个节点都是某一层中最右侧的节点。

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

vector<int> rightSideView(TreeNode* root) {
    unordered_map<int, int> rightmostValueAtDepth;
    int max_depth = -1;

    queue<TreeNode*> nodeQueue;
    queue<int> depthQueue;
    nodeQueue.push(root);
    depthQueue.push(0);

    while (!nodeQueue.empty()) {
        TreeNode* node = nodeQueue.front(); nodeQueue.pop();
        int depth = depthQueue.front(); depthQueue.pop();

        if (node != NULL) {
            max_depth = max(max_depth, depth);

            rightmostValueAtDepth[depth] = node->val;

            nodeQueue.push(node->left);
            nodeQueue.push(node->right);

            depthQueue.push(______);
            depthQueue.push(______);
        }
    }

    vector<int> rightView;
    for (int depth = 0; ______; ++depth) {
        rightView.push_back(rightmostValueAtDepth[depth]);
    }
    return rightView;
};

A.

depth
depth
depth < max_depth

B.

depth + 1
depth + 1
depth <= max_depth

C.

depth + 1
depth + 1
depth < max_depth

D.

depth
depth
depth <= max_depth
答案:B

考点

递推

解题思维

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

常见错误

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

详细解析(节选)

【考点】二叉树层次遍历|右视图|BFS深度递推

1. 🎯 考纲定位

GESP 六级"高级数据结构与算法"模块核心考点。命题人卡住的是"层次遍历中深度值传递"——六级考生容易混淆"节点值"和"深度值",把 depth 当成存节点值的容器,导致后续循环条件全错。

同考点真题

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