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

这种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("#");