为什么代码在头歌上运行不出结果?

//141页算法设计题5.3.3交换二叉树每个节点的左右孩子
#include
using namespace std;

//二叉树的二叉链表存储表示
typedef struct BiNode
{                
    char data;                        //结点数据域
    struct BiNode *lchild,*rchild;    //左右孩子指针
}BiTNode,*BiTree;

//用算法5.3建立二叉链表
void CreateBiTree(BiTree &T)
{    
    //按先序次序输入二叉树中结点的值(一个字符),创建二叉链表表示的二叉树T
    /***********************************Begin******************************/
    char ch;
    cin>>ch;
    if(ch=='#') T==NULL;
    else{T=new BiTNode;
    T->data=ch;
    CreateBiTree(T->lchild);
    CreateBiTree(T->rchild);}

    /***********************************End*******************************/
}                                    //CreateBiTree
void InOrderTraverse(BiTree T)
{  
    //中序遍历二叉树T的递归算法
    /***********************************Begin******************************/
    if(!T)
    {
        InOrderTraverse(T->lchild);
        printf("%c",T->data);
        InOrderTraverse(T->rchild);
    }

    /***********************************End*******************************/
}
void ChangeLR(BiTree &T)
{
    /***********************************Begin******************************/
    BiTree temp;
    if(T->rchild==NULL&&T->lchild==NULL)
    return;
    else{
        temp=T->lchild;T->lchild=T->rchild;T->rchild=temp;
    }
        ChangeLR(T->lchild);
        ChangeLR(T->rchild);

    /***********************************End*******************************/
} 


int main()
{
    BiTree tree;
    
    CreateBiTree(tree);
    ChangeLR(tree); 
    InOrderTraverse(tree);

    return 0;
}

头歌教学平台运行不出结果

img