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

GESP 2026年6月 C++六级 单选题 第12题

C++六级单选题2026年6月第12题

所属知识点:哈夫曼树与哈夫曼编码 难度要求:— 考频:—

给定一棵二叉树,采用 BFS 返回其右视图(右视图中每个节点都是该层最右侧的节点)。下面代码每层用 sz 记录本层节点数,横线处应填写( )。
vector<int> rightSideView(TreeNode* root) {
    vector<int> result;
    if (!root) return result;
    queue<TreeNode*> q;
    q.push(root);
    while (!q.empty()) {
        int sz = q.size();
        for (int i = 0; i < sz; ++i) {
            TreeNode* node = q.front(); q.pop();
            ________________________
            if (node->left) q.push(node->left);
            if (node->right) q.push(node->right);
        }
    }
    return result;
}

正确答案:B

题目解析
右视图是每层的最后一个节点。本层一共 sz 个,循环下标 i 从 0 到 sz−1,当 i == sz−1 时正是本层最右节点,把它加入结果,选 B。A 取的是最左;C、D 逻辑都不对。💡 层序遍历里「本层最后一个」= 下标 sz−1。

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

进入 GESPPASS 开始练习