请将下列 C++ 实现的深度优先搜索(DFS)代码补充完整,横线处应填入( )。
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x): val(x), left(nullptr), right(nullptr) {}
};
void dfs(TreeNode* root, vector<int>& result) {
if (root == nullptr) return;
________________________
}A.
result.push_back(root->val);
dfs(root->left);
dfs(root->right);B.
result.push_back(root->left->val);
dfs(root->right);
dfs(root->left);C.
result.push_back(root->left->val);
dfs(root->left);
dfs(root->right);D.
result.push_back(root->right->val);
dfs(root->right);
dfs(root->left);根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。
填空时注意语法完整性:分号、括号匹配、函数参数类型和个数、返回值类型。
【考点】递归|二叉树遍历|深度优先搜索(DFS)
本题考查《GESP 考试大纲》六级树形结构模块中的二叉树遍历,属于递归基础应用。命题人专门卡住那些只会背"前序中序后序口诀"、却不懂代码实现逻辑的考生——他们知道"前序是根左右",但一到写代码就分不清"先处理当前节点还是先递归"。