如何从无效函数返回整数?

时间:2019-07-02 01:28:17

标签: 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){
        //push temp->left
        n++;
    }
    if(temp->right){
        //push temp->right
        n++;
    }
  }
 }

2 个答案:

答案 0 :(得分:2)

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

如果您希望函数返回整数,则需要将返回类型更改为int。很简单,所以我不确定你在哪里挂断电话。

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

答案 1 :(得分:1)

如果您不想将返回类型从@IBAction func cancelButtonPressed(_ sender: Any) { os_log("cancelButtonPressed() called", log: OSLog.default, type: .debug) } @IBAction func saveButtonPressed(_ sender: Any) { os_log("saveButtonPressed() called", log: OSLog.default, type: .debug) } 更改为void,则应将参数类型更改为n:

int

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

n