树的直径

树的直径:树上最长的路径
即每个节点上 最长路径+次长路径 取max

vector<int>e[maxn];
int ans;
int dfs(int u,int fa){
	
	int d1=0,d2=0;
	for(int v:e[u]){
		if(v==fa)continue;
		
		int d=dfs(v,u)+1;
		if(d>d1){
			d2=d1;d1=d;
		}else{
			if(d>d2)d2=d;
		}
		
		ans=max(ans,d1+d2);
	}
	return d1;
}
posted @ 2025-03-17 21:44  Marinaco  阅读(13)  评论(0)    收藏  举报
//雪花飘落效果