题目链接:https://www.luogu.com.cn/problem/P4913
思路:
建立一棵树,然后遍历它
#include <iostream>
using namespace std;
typedef struct
{
int left, right;
}node;
node Tree[10000010];
int n, ans;
void dfs(int id, int deep)
{
if (id == 0)
{
return;
}
else
{
dfs(Tree[id].left, deep + 1);
dfs(Tree[id].right, deep + 1);
ans = ans > deep ? ans : deep;
}
}
int main()
{
int i = 1;
cin >> n;
for ( i; i <= n; ++ i )
{
cin >> Tree[i].left >> Tree[i].right;
}
dfs(1, 1);
cout << ans << endl;
return 0;
}