数据结构,建立二叉树空指针问题。

typedef struct BTNode {
char data ;
struct BTNode *Lchild , *Rchild ;
} BTNode ;
BTNode *Preorder_Create_BTree(BTNode *T)
{

char ch ;
ch=getchar();
if (ch=='?') {
T=NULL;
return T ;
} else {
T=(BTNode *)malloc(sizeof(BTNode)) ;
T->data=ch ;
Preorder_Create_BTree(T->Lchild) ;
Preorder_Create_BTree(T->Rchild) ;
return T ;
}
}
int main()
{
BTNode *T=NULL;
T=Preorder_Create_BTree(T);
return 0;
}
这样定义的函数,输入先序遍历结果,比如1+2输入+1??2??
但是发现输入?执行T=NULL之后,T-Lchild地址不是0000000000000000
比如输出T->Lchild->Lchild的地址并不是NULL
为什么会这样??

Preorder_Create_BTree(T->Lchild,quit) ; 这两个参数的函数定义在哪?