Чтобы найти диаметр дерева, я могу взять любой node из дерева, выполнить BFS, чтобы найти node, который находится дальше всего от него, а затем выполнить BFS на этом node. Наибольшее расстояние от второй BFS даст диаметр.
Я не уверен, как это доказать? Я попытался использовать индукцию по количеству узлов, но слишком много случаев.
Любые идеи будут высоко оценены...