原题链接:悠闲的漫步
解题思路:
注意事项:
参考代码:
唯一题解:
#include<iostream> #include<cstdio> #include<cstring> #include<stack> #include<cmath> typedef long long ll; using namespace std; struct Node { int id,l,r; Node() { l=r=0; } } tr[1010];//保存二叉树 int p,dep[1010],ans=0;//个数,节点深度,答案(树的深度) void addedge(int i,int r,int l) { tr[i].id=i; tr[i].l=l; tr[i].r=r; }//编号为i的接点的左节点l,右节点r void Init() { scanf("%d",&p); int a,b,c; for(int i=1;i<p;i++) { scanf("%d%d%d",&a,&b,&c); addedge(a,b,c); } dep[1]=1;//注意初始化 } void DFS(int i) { if(tr[i].l) {//如果左节点不为0 dep[tr[i].l]=dep[i]+1;//左节点的深度 ans=max(ans,dep[i]+1);//更新树的深度 DFS(tr[i].l);//接着左节点向下找 } if(tr[i].r){//同理 dep[tr[i].r]=dep[i]+1; ans=max(ans,dep[i]+1); DFS(tr[i].r); } } int main() { Init(); DFS(1); printf("%d",ans); return 0; }
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复