专栏文章

题解:P4913 【深基16.例3】二叉树深度

P4913题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipc4uwa
此快照首次捕获于
2025/12/03 09:35
3 个月前
此快照最后确认于
2025/12/03 09:35
3 个月前
查看原文
这应该是最短的题解吧
思路全在代码里了
(本蒟蒻的第一篇题解,求通过)
CPP
//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 条评论,欢迎与作者交流。

正在加载评论...