#include <bits/stdc++.h>
using namespace std;
struct node {
node* l, * r, * father;
}a[100001];
int ans;
void dfs(node item,int deep) {
if (item.l == NULL && item.r == NULL) {
ans = (deep >= ans ? deep : ans);
return;
}
if (item.l != NULL) dfs(*item.l, deep + 1);
if (item.r != NULL) dfs(*item.r, deep + 1);
}
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
int l, r;
cin >> l >> r;
if(l!=0){
a[i].l = &a[l];
a[i].r = &a[r];
a[l].father = &a[i];
a[r].father = &a[i];
}
}
struct node tmp = a[1];
while (tmp.father != NULL) {
tmp = *tmp.father;
}
dfs(tmp, 1);
cout << ans;
}
大佬们,我 第一个 和 第三个 点没有过