Возможно, дубликат или нечетный вопрос, но я нигде не смог найти ответ:
Я хочу распечатать путь в порядке поиска в ширину несбалансированного двоичного дерева 1004 * с нулевыми братьями и сестрами. Мой код работает, и я пытался улучшить его, но я немного застрял. Мне просто интересно, есть ли более умный способ сделать это вместо нескольких проверок.
function traverse(tree) {
const path = [];
let queue = [tree];
while (queue.length > 0) {
const current = queue.shift();
if (current !== null) path.push(current.val);
else {
path.push(null);
continue;
}
if (current.left === null && current.right === null) continue;
else if (current.left !== null && current.right === null) {
queue.push(current.left);
queue.push(null);
}
else if (current.left === null && current.right !== null) {
queue.push(null);
queue.push(current.right);
}
else {
queue.push(current.left);
queue.push(current.right);
}
}
return path;
}