C++ 下面的打印树功能不起作用为什么?

C++ 下面的打印树功能不起作用为什么?,c++,data-structures,tree,c++14,binary-tree,C++,Data Structures,Tree,C++14,Binary Tree,我的打印函数的代码是- void print(node* root){ cout<<root->data<<" "; print(root->left); print(root->right); return; } 我想不出问题出在哪里。代码的逻辑有问题吗 递归函数非常接近工作状态,但它缺少一个基本情况,即当root为nullptr时,它不会告诉编译器该做什么。在root为nullptr时添加要退出的指令将解决此问题:

我的打印函数的代码是-

void print(node* root){
    cout<<root->data<<" ";
    print(root->left);
    print(root->right);
    return;
}

我想不出问题出在哪里。代码的逻辑有问题吗

递归函数非常接近工作状态,但它缺少一个基本情况,即当
root
nullptr
时,它不会告诉编译器该做什么。在
root
nullptr
时添加要退出的指令将解决此问题:

void print(node* root) {
    if (!root) return;
    ... // The remaining code should remain the same
}

注意:函数
void
底部的
return
语句没有特殊用途,应该删除。

哦,是的,非常感谢。我完全忘记了这么愚蠢的事情。有几个问题会阻止此代码的编译。在print()函数中,它应该是print(struct*节点)。打印节点时,您可能还希望打印节点->数据元素。然后您需要一个main()函数入口点来实际执行代码。在我们帮助您解决问题之前,您必须告诉我们问题是什么。代码没有编译吗?你跑不动吗?它开始运行,但崩溃了吗?是否显示任何错误消息?你在调试器下运行过吗?如果您不知道如何使用调试器,现在是学习的时候了。仅仅删除一些代码并说“它不工作”并不能让我们轻松地帮助您。
void print(node* root) {
    if (!root) return;
    ... // The remaining code should remain the same
}