Я хочу написать функцию, которая проверяет, является ли неориентированный граф деревом.
Пока я использую это:
Function<Graph<Integer>, Double> targetFunction = g -> {
boolean isConnected = Graphs.reachableNodes(g, g.nodes().iterator().next()).equals(g.nodes());
return isConnected && Graphs.hasCycle(g);
};
Уже есть реализация этого метода в Гуаве (не нашел), и если нет, можно ли это улучшить?