请问这个生成二叉树的递归函数错在哪里

int CreakBiNode(BiNode T,char ch[11],int i)
{ if(i>=1)
{

T->lchild=(BiNode
)malloc(sizeof(BiNode));
T->lchild->data=ch[10-i--]; T->data=ch[10-i--];
T->lchild->lchild=NULL; T->lchild->rchild=NULL;

T->rchild==(BiNode*)malloc(sizeof(BiNode)); T=T->rchild; T->lchild=NULL;
CreakBiNode(T,ch,i);

return 1;

}

参考:感觉你的creatbinode里面参数有点问题

 void creat_tree(tree &t)
{
 char ch;

 cin>>ch;
 if(ch == '0')
 {
  t=NULL;
 }
 else
 {
  t = new binary_tree;
  if(!t) exit(0); //如果没成功申请空间 则退出

  t->data=ch;
  creat_tree(t->lchild);
  creat_tree(t->rchild);
 }


你能先把语法错误改了吗 少个} 而且赋值改写成了 ==

你的思路感觉就是错的,创建了左孩子,然后创建右孩子,然后就不管左孩子的左孩子,直接就去创建右孩子的右孩子了