#3805. [GESP202506 六级 C++] 第 12 题

[GESP202506 六级 C++] 第 12 题

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

#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) {
            TreeNode* node;
            _______________________________
            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();

{{ select(1) }}

  • A
  • B
  • C
  • D