Поскольку это дерево, между любой парой вершин существует только один путь. Это облегчает нам поиск диаметра графика.
Самый простой способ сделать это - сделать два простых обхода дерева. Сначала возьмем любой произвольный узел в качестве корня и вычислим расстояния от него до каждой вершины, используя простую DFS / BFS. Теперь возьмем самый дальний от корня узел (это первый узел самой удаленной пары) и, сделав его новым корнем, выполните еще один обход дерева, вычисляя расстояния от него. Самый удаленный узел от этого - другой узел пары.
Доказательство того, почему это работает, оставлено в качестве упражнения.
Существует также другой способ, который вычисляет наиболее удаленную пару путем вычисления и сравнения наиболее удаленных пар для каждого поддерева дерева, начиная с произвольного узла в качестве корня (уже упоминавшегося в другом ответе).