#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include <ctype.h>
struct node{
int lc,rc;
}btnode[1000000];
int deep=0;
int ans=1;
void dfs(struct node t)
{
deep++;
if(t.lc==0&&t.rc==0)
{
if(deep>ans) ans=deep;
deep--;
return ;
}
dfs(btnode[t.lc]);
dfs(btnode[t.rc]);
}
int main()
{
int i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&btnode[i].lc,&btnode[i].rc);
}
dfs(btnode[1]);
printf("%d",ans);
return 0;
}
不知哪里有问题只能过2个测试点...