
题目描述
问题一:二叉树深度 参考链接:洛谷 P4913

解题思路
计算二叉树深度的核心在于递归。一棵树的高度等于其左右子树高度的最大值加一(根节点本身)。当遇到空节点时,高度为 0。这种自底向上的计算方式非常适合用 DFS 实现。
代码实现
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e6 + 10;
int l[N], r[N]; // 存储左右子节点索引
// 递归计算以 root 为根的树深
int dfs(int root) {
if (!root) return 0; // 空节点深度为 0
// 取左右子树最大深度 + 1
return max(dfs(l[root]), dfs(r[root])) + 1;
}
int main() {
int n;
cin >> n;
( i = ; i <= n; i++) {
cin >> l[i] >> r[i];
}
cout << () << endl;
;
}





