【正经题解】二叉树层数
2024-03-15 10:59:20
发布于:浙江
22阅读
0回复
0点赞
这段代码通过递归遍历二叉树,记录每个节点的深度,最终输出二叉树的深度。
#include<bits/stdc++.h>
using namespace std;
int l[1000000], r[1000000], n, ans;
// 递归遍历二叉树,记录每个节点的深度
void dfs(int x, int pos) {
if (x == 0) return;
ans = max(ans, pos);
dfs(l[x], pos + 1);
dfs(r[x], pos + 1);
}
int main() {
// 输入节点个数
cin >> n;
// 输入每个节点的左右子节点
for (int i = 1; i <= n; i++)
cin >> l[i] >> r[i];
// 从根节点开始递归遍历二叉树
dfs(1, 1);
// 输出二叉树的深度
cout << ans;
return 0;
}
这里空空如也
有帮助,赞一个