专栏文章
题解:P4913 【深基16.例3】二叉树深度
P4913题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipc4uwa
- 此快照首次捕获于
- 2025/12/03 09:35 3 个月前
- 此快照最后确认于
- 2025/12/03 09:35 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; //完结撒花
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...