二叉树递归算法能否得到完全前序序列

这种C语言下的二叉树递归遍历是可用的, 它工作的非常完美!

void PreOrder(BiTree T){
    if(T!=NULL){
        visit(T);
        printf("T->lchild: %d\n", T->lchild);
        PreOrder(T->lchild);
        PreOrder(T->rchild);
    }
}

然而, 当我尝试得到一个完全前序序列, 我做了如下修改, 却得到了runtime error. debug的时候发现是一个段错误.

void PreOrder(BiTree T){
    if(T!=NULL){
        visit(T);
        printf("T->lchild: %d\n", T->lchild);
        PreOrder(T->lchild);
        PreOrder(T->rchild);
    }
    else{
        printf('#');
    }
}

我不理解下面这种代码为什么不能拿来递归呢?

阅读 1.8k
1 个回答

第二个printf,不能传入字符,应该是字符指针。

printf("#");

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进