北京大型网站优化/抖音seo是什么意思

题目描述
给定一棵树,树中包含
现在请你找到树中的一条最长路径。
换句话说,要找到一条路径,使得使得路径两端的点的距离最远。
注意:路径中可以只包含一个点。
输入格式
第一行包含整数
接下来
输出格式
输出一个整数,表示树的最长路径的长度。
数据范围
输入样例:
6
5 1 6
1 4 5
6 3 9
2 6 8
6 1 7
输出样例:
22
解决方案
dfs 时间复杂度O(n+m) n为顶点数,m为边数

这里我们每一个节点都对应一个dist,存储的是某个节点的单方向的最长的路径,我们来宏观的考虑这个问题,对于每一个节点,我们求以它为中间节点的最长路径的方法是用两个变量b1,b2分别存储这个节点对应的子节点中dist的最大值和次大值,初始化b1,b2为0,这是为了防止某个单方向路径的长度为负数,因为如果为负数,我们就可以忽略这条路径,它只会使得以这个节点为中间节点的路径长度变小,所以此时以这个节点为中间节点所对应的最长的路径就是d1+d2的值!
#include