数据结构中二叉树的动态建立问题

//前序生成树
void create_tree(RTreeNode *p)
{
    char ch;
    scanf("%c", &ch);
    if(ch == '#')
    {
        p = NULL;           //输入# = NULL, 键盘上无法打出NULL单个字符
        return ;

    }
    else
    {
       p = init_node();
       p->data = ch;
       if(p == NULL)
       {
           exit(0);
       }
       printf("请输入当前结点 %c 的左孩子,若没有左孩子,请输入#\n", ch);
       create_tree(p->left_child);
       printf("请输入当前结点 %c 的右孩子,若没有右孩子,请输入#\n", ch);
       create_tree(p->right_child);
    }
}

用new 新建链表就好了。