GESP 六级 · GESP 202509 C++ 六级 第 22 题

判断题 · 答案 A

← 整套速查表 GESP 六级 全部真题

题目

以下代码实现了二叉树的中序遍历。输入以下二叉树,中序遍历结果是 4 2 5 1 3 6 。

//       1
//      / \
//     2   3
//    / \   \
//   4   5   6

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

void inorderIterative(TreeNode* root) {
    stack<TreeNode*> st;
    TreeNode* curr = root;

    while (curr || !st.empty()) {
        while (curr) {
            st.push(curr);
            curr = curr->left;
        }
        curr = st.top(); st.pop();
        cout << curr->val << " ";
        curr = curr->right;
    }
}
答案:A

解题思维

仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。

常见错误

审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。

详细解析(节选)

【考点】二叉树遍历|栈的应用|迭代转递归思维转换

1. 🎯 考纲定位

本题考查 GESP 六级「数据结构与算法」模块的核心考点:二叉树中序遍历的迭代实现。命题人特意选择"判断正误"而非"填空/选择",就是要卡住那些只会背递归写法(左-根-右)的考生——六级开始重点考察栈的模拟能力和代码细节敏感度,这道题就是专门测试你是否真正理解迭代版本的执行流程,而不是机械记忆。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断