我的打印功能代码是 -
void print(node* root){
cout<<root->data<<" ";
print(root->left);
print(root->right);
return;
}
其中使用的节点结构为: -
struct node
{
int data;
node* left;
node* right;
};
我无法弄清楚问题是什么。代码的逻辑有什么问题吗?
答案 0 :(得分:2)
你的递归函数非常接近于工作,但它缺少一个基本情况,即当root
为nullptr
时它没有告诉编译器该做什么。在root
为nullptr
时添加退出说明将解决问题:
void print(node* root) {
if (!root) return;
... // The remaining code should remain the same
}
注意: return
函数底部的void
语句没有特殊用途,应该删除。