#3778. [GESP202503 六级 C++] 第 10 题

[GESP202503 六级 C++] 第 10 题

以下代码实现了二叉树的深度优先搜索(DFS),并统计叶子结点的数量,则横线上应填写( )。

int countLeafNodes(TreeNode* root) {
    if (root == nullptr) return 0;

    stack<TreeNode*> s;
    s.push(root);
    int count = 0;
    while (!s.empty()) {
        TreeNode* node = s.top();
        s.pop();

        if (node->left == nullptr && node->right == nullptr) {
            count++;
        }

        if (node->right) s.push(node->right);
        ________________ // 在此处填入代码
    }
    return count;
}

{{ select(1) }}

  • if (node->left) s.push(node->left);
  • if (node->left) s.pop(node->left);
  • if (node->left) s.front(node->left);
  • if (node->left) s.push(node->right);