Ваш код принимает количество дочерних элементов текущего узла, а затем сравнивает его с количеством внуков (дочерних элементов текущих дочерних элементов).Но это так.
Если вы хотите получить максимальное количество дочерних элементов любого потомка, вы можете разрешить детям вычислять их max таким же образом, рекурсивно вызывая returnMaxChildren
для них.
public int returnMaxChildren() {
int count = children.size();
for (Person child : children){
int childMax = child.returnMaxChildren();
if (childMax > count){
count = childMax;
}
}
return count;
}