统计利用先序遍历创建的二叉树的深度。
输入
输入为先序遍历二叉树结点序列。
输出
对应的二叉树的深度。
样例输入
A##
ABC####
AB##C##
ABCD###E#F##G##
A##B##
样例输出
1
3
2
4
1
#include<cstdio>
using namespace std;
struct tree
{
int dat;
tree *lc,*rc;
tree()
{
lc=NULL,rc=NULL;
}
}*root;
int build(tree *a)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
{
a=NULL;
return 0;
}
else
{
a=new tree();
a->dat=ch-'0';
int ans1=build(a->lc),ans2=build(a->rc);
return ans1>ans2?(ans1+1):(ans2+1);
}
}
int main()
{
printf("%d",build(root));
}
版权声明:本文为qq_42576687原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。