У меня есть arraylist, который связан в древовидной структуре (точнее, в генеалогическом дереве).Каждый узел - это объект, содержащий поле генерации.Я хотел бы найти лист с самым высоким поколением в дереве.Я попробовал это:
private int findHighestLeafGeneration(FamilyMember node, int gen){
if(node.getChildren().isEmpty()){
return gen;
}
for(int i = 0; i < node.getChildren().size(); i++){
gen = findHighestLeafGeneration(node.getChild(i), node.getChild(i).getGeneration());
}
return gen;
}
Я называю метод следующим образом:
findHighestLeafGeneration(node, node.getGeneration());
Что это должно сделать, это взять член семейного дерева (узел) и распечатать всепотомки этого члена.Мой метод PrintDescendants требует количество поколений для печати.
Выше немного глючит.Он получает генерацию листьев, затем возвращает и перезаписывает генерацию листьев генерацией родительских узлов.Любые подсказки, почему?