У меня есть функция для обхода бинарного дерева в прямом порядке, но она работает неправильно. Когда я тестирую её на дереве [1,2], получаю только [1] вместо полного результата.
function traversePreorder(node) {
let result = [];
if(node !== null){
result.push(node.value);
result = result.concat(traversePreorder(node.leftChild));
result = result.concat(traversePreorder(node.rightChild));
}
return result;
}
Проблема в том, что функция возвращает только корневой элемент. Подскажите, как правильно собрать все элементы дерева в один массив при рекурсивном вызове? Я думаю проблема в том, что результаты рекурсивных вызовов никуда не сохраняются.