C++ 如何从Void函数返回整数?

C++ 如何从Void函数返回整数?,c++,return,C++,Return,我想计算二叉树中的节点数,并希望在级别顺序遍历中保持节点数。但是遍历函数返回void,因此我需要帮助返回节点数的计数 void Level_Order(node* root,int n){ queue<node *> q; if(root){ q.push(root); n++; } while(!q.empty()){ node* temp = q.front(); q.pop(); if(temp->left){ //

我想计算二叉树中的节点数,并希望在级别顺序遍历中保持节点数。但是遍历函数返回void,因此我需要帮助返回节点数的计数

void Level_Order(node* root,int n){
queue<node *> q;
if(root){
    q.push(root);
    n++;
}
while(!q.empty()){
    node* temp = q.front();
    q.pop();
    if(temp->left){
        //push temp->left
        n++;
    }
    if(temp->right){
        //push temp->right
        n++;
    }
  }
 }

如果不想将返回类型从void更改为int,则应将参数类型更改为n:

void Level_Order(node* root,int& n){
n现在是a,原始变量将通过此引用进行修改

node root = getRoot();
int nNode = 0;

Level_Order(&root, nNode);
printf("Number of nodes is : %d\n", nNode);

返回类型指定函数方法返回的数据类型(如果有)。void表示没有返回类型

如果您希望函数返回一个整数,那么您需要将返回类型更改为int。这非常简单,所以我不确定您在哪里挂断了


正如其他人所指出的,也可以接受引用或指针参数,并将更新后的值返回给调用者。但一般来说,返回类型是指函数返回类型,它需要匹配您希望它返回的内容。

void表示它不返回任何内容。因此,您需要更改返回类型,然后添加一个返回值的return语句。您可以使返回类型不为void,或者为结果位置添加一个额外的指针/引用