以下打印树功能不起作用?

时间:2018-04-30 19:37:13

标签: c++ data-structures tree c++14 binary-tree

我的打印功能代码是 -

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

其中使用的节点结构为: -

struct node
{
int data;
node* left;
node* right;
};

我无法弄清楚问题是什么。代码的逻辑有什么问题吗?

1 个答案:

答案 0 :(得分:2)

你的递归函数非常接近于工作,但它缺少一个基本情况,即当rootnullptr时它没有告诉编译器该做什么。在rootnullptr时添加退出说明将解决问题:

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

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