#3779. [GESP202503 六级 C++] 第 11 题

[GESP202503 六级 C++] 第 11 题

以下代码实现了二叉树的广度优先搜索(BFS),并查找特定值的节点,则横线上应填写( )。

TreeNode* findNode(TreeNode* root, int target) {
    if (root == nullptr) return nullptr;

    queue<TreeNode*> q;
    q.push(root);
    while (!q.empty()) {
        TreeNode* current = q.front();
        q.pop();

        if (current->val == target) {
            return current; // 找到目标节点
        }

        ________________ // 在此处填入代码
    }
    return nullptr; // 未找到目标节点
}

A.

if (current->left) q.push(current->left);
if (current->right) q.push(current->right);

B.

if (current->left) q.pop(current->left);
if (current->right) q.pop(current->right);

C.

if (current->left) q.front(current->left);
if (current->right) q.front(current->right);

D.

if (current->left) q.push(current->right);
if (current->right) q.push(current->left);

{{ select(1) }}

  • A
  • B
  • C
  • D