pta中求二叉树度为1的节点内存超时
#include
#include
typedef char DataType;
int i=0;
typedef struct Node
{
DataType data;
struct Node *LChild;
struct Node *RChild;
}BiTNode, *BiTree;
void CreateTree(BiTree* T,char s[]);//使用先序遍历构建二叉树
int NodeCount( BiTree T);
int main(void)
{
char s[50];
BiTNode *root;
while(scanf("%s",s))
{
i=0;
CreateTree(&root,s);
printf("%d\n",NodeCount(root));
}
return 0;
}
int NodeCount( BiTree T)
{
if(T==NULL)
return 0;
if(T->LChild!=NULL&&T->LChild!=NULL)
{
return 1+NodeCount(T->LChild)+NodeCount(T->RChild);
}
return NodeCount(T->LChild)+NodeCount(T->RChild);
}
//使用先序遍历构建二叉树
void CreateTree(BiTree* T, char s[])
{
if(!s[i])
return ;
if(s[i] == '*')
{
*T = NULL;
i++;
return;
}
else
{
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = s[i];
i++;
CreateTree(&((*T)->LChild),s);
CreateTree(&((*T)->RChild),s);
}
}
pta中提交 内存超限
我看的一段代码算法几乎一模一样,我看不出问题在哪