题解:P4913 【深基16.例3】二叉树深度
这应该是最短的题解吧\
思路全在代码里了\
(本蒟蒻的第一篇题解,求通过)
//Luogu Problems - P4913
#include<iostream>
using namespace std;
const int MAXN = 1e6 * 10; //最大大小
struct Tree { //二叉树结点
int left, right;
} tree[MAXN];
int n;
int dfs(int x) { //稍微遍历一下
if (!x) return 0;
return max(dfs(tree[x].left), dfs(tree[x].right)) + 1; //分别把每一个节点看成一个子树,然后用递归遍历出一颗树的深度,然后向上递推分别判断哪一棵子树的深度最大然后取它的+1的值
}
int main() {
cin >> n; //不用说了吧。。。
for (int i = 1; i <= n; i++) cin >> tree[i].left >> tree[i].right;
cout << dfs(1) << endl;
return 0; //完结撒花
}