您的位置:首页 > 其它

1350 求二叉树的深度

2013-07-13 23:05 176 查看
竟然运行一次直接AC!!不可思议!明天再看一下。

#include<iostream>
#include<cstdio>
using namespace std;

typedef struct Tnode{
int data;
struct Tnode *left;
struct Tnode *right;
}Tnode;

int depth(Tnode *root)
{
if(root == NULL)
return 0;
else
{
int a = depth(root->left);
int b = depth(root->right);
if(a>b)
return a+1;
else
return b+1;
}
}

int main()
{
int n;
int a,b;
Tnode *T;
while(scanf("%d",&n)!=EOF)
{
Tnode *p = new Tnode[n+1];
for(int i=1;i<=n;i++)
{
scanf("%d %d",&a,&b);

if(i==1)
T = &p[i];

if(a==-1)
p[i].left=NULL;
else
p[i].left=&p[a];

if(b==-1)
p[i].right=NULL;
else
p[i].right=&p[b];
}

printf("%d\n",depth(T));

delete[] p;
p=NULL;
}

return 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: