Я практикуюсь в решении алгоритмической проблемы, и мне нужна помощь в поиске ошибки в моем коде.
--- Направления Учитывая корневой узел дерева, верните массив, где каждый элемент является шириной дерева на каждом уровне.
Я пробовал запускать тестовые случаи на нем иа запустить его в JSBin, но не повезло.Получение этой ошибки при запуске теста: TypeError: undefined не повторяется
// my node class
class Node {
constructor(data) {
this.data = data;
this.children = [];
}
add(data) {
this.children.push(new Node(data));
}
};
function levelWidth(root) {
const store = [];
const widths = [0];
if(root){
store.push(root);
store.push('stop');
}
while(store.length > 1){
const value = store.shift();
if(value === 'stop'){
widths.push(0);
store.push(stop);
}
else {
store.push(...value.children);
widths[widths.length - 1]++;
}
}
return widths;
}
При запуске
expect(levelWidth(root)).toEqual([1, 3, 2]);
я ожидаю получить массив [1,3,2], но вместо этого получитьОшибка типа: undefined не повторяется для
store.push(...value.children);
Из того, что я вижу, правильно ли я использую оператор распространения?