Also ich habe dieses Person-Objekt. Jede Person haben Liste der Personen-Objekt und so weiter ..Holen Sie das ausgewählte Objekt aus dem Baum basierend auf Übergabe Argument
public class Person {
....
private List<Person> people = new ArrayList<>();
....
public List<Person> getPeople() {
return people;
}
public void setPeople(List<Person> people) {
this.people = people;
}
ich bereits die maximale dept Antwort mit dem folgenden Code, Antwort, was int ich minus 1
public static int maxDepth(Person p) {
int maxChildrenDepth = 0;
for (Person c: p.getPeople()) {
maxChildrenDepth = Math.max(maxChildrenDepth, maxDepth(c));
}
return 1 + maxChildrenDepth;
}
Also, wenn ich Person Objekt & Int in Methode, lassen Sie sagen, getPersonLevel (List allPerson, 1), sollte ich alle Person Objekt in der Liste, die blaue Box sind, wenn ich 2 eingeben, ich sollte alle Objekte in der Liste erhalten von der roten Farbe bo x und so weiter, abhängig vom Argument int. Wie komme ich dazu? Jede Hilfe zu schätzen.
es funktioniert nicht -> \t getPersonLevel nicht funktioniert, da es leer zurück – jimagic
Sorry, ich schrieb, dass im Fluge, ich habe nicht die Zeit nehmen, um den Code zu testen. Ich habe meine Antwort bearbeitet, diese Version wurde getestet und ich kann Ihnen versichern, dass es funktioniert! –