Что я могу сделать, чтобы исправить ошибку StackOverFlow / GC Overhead в моем коде?
Я пытаюсь завершить лабораторную работу в школе, но получаю сообщение об ошибке StackOverFlow и GC Overhead. По сути, мне нужно распечатать красно-черное дерево в порядке порядка.
public String levelOrder(RedBlackNode<T> root){
ArrayList<ArrayList<T>> result = new ArrayList<>();
traverse(root, 0, result);
Stack<ArrayList<T>> stack = new Stack<ArrayList<T>>();
for (ArrayList<T> row : result) {
stack.push(row);
}
result = new ArrayList<>();
while (!stack.isEmpty()) {
result.add(stack.pop());
}
return result.toString();
}
private void traverse(RedBlackNode<T> node, int level, ArrayList<ArrayList<T>> result) {
if (node == null) return;
while (level >= result.size()) {
result.add(new ArrayList<T>());
}
result.get(level).add(node.key());
traverse(node.left(), level + 1, result);
traverse(node.right(), level + 1, result);
}