Я делаю некоторую ревизию экзамена и нашел этот вопрос в прошлом экзаменационном листе:
![enter image description here](https://i.stack.imgur.com/x7pOW.png)
![enter image description here](https://i.stack.imgur.com/mCjcM.png)
Во-первых, будет ли кто-нибудь когда-нибудь реализовывать такое дерево или это просто проблема экзамена?
Во-вторых, я действительно не понимаю, как это сделать.Я хотел использовать BFS или DFS, но они работают только для двоичных деревьев, и я не очень хорошо разбираюсь в рекурсии, поэтому я тоже боролся с этим.не работает для общего случая, только это конкретное дерево:
public ArrayList<Integer> getLeafValues() {
ArrayList<Integer> leafList = new ArrayList<>();
Tree current = this;
for (Tree t : current.children) {
if (t.children.isEmpty()) {
leafList.add(t.data);
} else {
for (Tree t2 : t.children) {
if (t2.children.isEmpty()) {
leafList.add(t2.data);
} else {
for (Tree t3 : t2.children) {
if (t3.children.isEmpty()) {
leafList.add(t3.data);
}
}
}
}
}
}
return leafList;
}
Любая помощь по этому вопросу будет отличной, как я уже сказал до пересмотра экзамена, а не домашней работой.Спасибо