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

标签 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;
};

我想不通是什么问题,是不是代码逻辑有问题?

最佳答案

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

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

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

关于c++ - 为什么下面的打印树功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50107086/

相关文章:

java - 使用二分查找高效地获取排序数组中小于给定数字的数字计数

java - 用于匹配字符串的数据结构

java - 将节点值更改为二叉树中的高度

php - 如何用php获取所有可能的决策树

c++ - 多态数组只复制类的基本属性[C++]

c++ - 用 C++ 在 Ubuntu 上运行 PiCamera

java - Java 中的通用表结构(如 ResultSet)

haskell - Haskell 中 pretty-print 表达式结构?

C++ Apache2 模块未加载

c++ - 计算使用长度为 1,2,3,4,......m 的步长到达第 N 步的方法数。(其中 m<=n)