创建二叉树的函数 赋值失败
#include<iostream>
//#include<cstdlib>
using namespace std;
typedef struct BiNode
{
char val;
BiNode* lchild, * rchild;
}BiNode;
BiNode* BuildBiTree(BiNode* &t)
//先序遍历创建二叉树
{
char ch;
cin >> ch;
if (ch == '@') return nullptr;
//空节点输入@
else
{
BiNode* T = t;
T = new BiNode;
T->val = ch;
BuildBiTree(T->lchild);
BuildBiTree(T->rchild);
}
}
int NodeNumber(BiNode* T)
//统计二叉树节点个数
{
if (T == nullptr)
return 0;
else
return NodeNumber(T->lchild) + NodeNumber(T->rchild) + 1;
}
int main()
{
BiNode* T = nullptr;
BuildBiTree(T);
cout << NodeNumber(T) << endl;
return 0;
}