竟然运行一次直接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;
}