我试图将节点插入到二进制搜索树中,在左子树中插入一个节点没有问题,但在右子树插入一个节点会产生空指针异常问题 .

插入一个节点第一次正常工作,但是当我尝试在根的右侧部分插入一个新节点时,我发现root已经被赋予了一些垃圾值,而在遍历n时它会打印出空指针异常 .

typedef struct tree
{
    int elt;
    struct tree *left,*right;
}T;
    T *RT=null;

void insert()
{
    int n;
    T *move,*temp,*back;
    printf("\nEnter an element: ");
    scanf("%d",&n);
    temp=(T *)malloc(sizeof(T *));
    temp->left=NULL;
    temp->right=NULL;
    temp->elt=n;
    if(RT==NULL)
        RT=temp;
    else
    {
        move=RT;
        while(move!=NULL)
        {
            back=move;
            if(move->elt>=n)
                move=move->left;
            else if(move->elt<n)
                move=move->right;
        }
        if(back->elt>=n)
            back->left=temp;
        else
            back->right=temp;
    }
    printf("%d %d %d",RT->elt,RT->left->elt,RT->right->elt);
}