public class Node {
int value;
List<Node> childNodes;
Node(int x) {
value = x;
childNodes = new ArrayList<>();
}
}
Это определение узла.Ошибка OutOfMemory в среднем значении всех узлов в дереве
public static double averageNodes(Node root) {
int numofnodes = 0;
int sum = 0;
Stack<Node> s = new Stack<Node>();
s.add(root);
while (!s.isEmpty()) {
Node n = s.pop();
numofnodes++;
sum += n.value;
for (Node temp : root.childNodes) {
s.push(temp); // Line 1
}
}
return sum/numofnodes;
}
Я использую поиск глубины с помощью стека, чтобы обходить дерево. Однако, когда я нажимаю run in eclipse, сообщение об ошибке показывает «Исключение в потоке» main «java.lang.OutOfMemoryError: Java heap space» в строке 1. Кто-нибудь знает, чтобы исправить код, чтобы избежать этой ошибки?
Но я могу построить очень простую древовидную структуру в основном только с 9 узлами, и именно так я ее тестирую. – sevenxuguang