直接用深搜就可以了
#include<iostream>
using namespace std;
struct Node
{
int lc,rc;
};
struct Node root[1000010];
int n,deep=1,maxdeep=0;
void dfs(int x,int deep)
{
if(x==0)
return;
maxdeep=max(maxdeep,deep);
dfs(root[x].lc,deep+1);
dfs(root[x].rc,deep+1);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>root[i].lc>>root[i].rc;
}
dfs(1,deep);
cout<<maxdeep;
}