我想计算二叉树中的节点数,并希望对级别顺序遍历中的节点数进行计数。但是遍历函数返回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++;
}
}
}
答案 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