#3806. [GESP202506 六级 C++] 第 13 题

[GESP202506 六级 C++] 第 13 题

下面代码实现一个二叉排序树的插入函数(没有相同的数值),横线处应填入( )。

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

void insert(TreeNode*& root, int key) {
    if (!root) {
        root = new TreeNode(key);
        return;
    }
    _______________________________
}

A.

if (key < root->val)
    insert(root->left, key);
else if (key > root->val)
    insert(root->right, key);

B.

if (key < root->val)
    insert(root->right, key);
else if (key > root->val)
    insert(root->left, key);

C.

insert(root->left, key);
insert(root->right, key);

D.

insert(root->right, key);
insert(root->left, key);

{{ select(1) }}

  • A
  • B
  • C
  • D