SWUST-971-统计利用先序遍历创建的二叉树的深度

题目

统计利用先序遍历创建的二叉树的深度。

输入

输入为先序遍历二叉树结点序列。

输出

对应的二叉树的深度。

样例输入

A##
ABC####
AB##C##
ABCD###E#F##G##
A##B##

样例输出

1
3
2
4
1

#include
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));
}

你可能感兴趣的:(SWUST-971-统计利用先序遍历创建的二叉树的深度)