请问用二叉链表创建二叉树,并先序遍历时为何输出不了答案呢?

#include<stdio.h>
#include<stdlib.h>
typedef struct BT{
    int data;
    struct BT *LChild;
    struct BT *RChild; 
}BT;
void CreateBT(BT *T){
    int v;
    scanf("%d",&v);
    if(v==-1){
        T=NULL;
    }else{
        T=(BT*)malloc(sizeof(BT));
        T->data=v;
        CreateBT(T->LChild);
        CreateBT(T->RChild);
    }
} 
void Proput(BT *T){
    if(T==NULL) return;
    printf("%d ",T->data);
    Proput(T->LChild);
    Proput(T->RChild);
}
int main(){
    BT *T,*head;
    CreateBT(T);
    Proput(head);
    return 0;
}

img

T没有初始化啊