按级别顺序遍历时打印不平衡二叉树的空兄弟

Print null siblings of unbalanced binary tree when traverse in level order

可能是重复或奇怪的问题,但我无法在任何地方找到答案:

我想以广度优先搜索顺序打印出具有 null 兄弟节点的 不平衡二叉树 的路径。我的代码有效,我试图改进它,但我有点卡住了。我只是想知道是否有更聪明的方法来代替多次检查。

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;
}

就是不做检查?以下代码应该等同于您正在执行的操作:

if (current.left === null && current.right === null)
    continue;
else {
    queue.push(current.left);
    queue.push(current.right);
}

它在子 null 时推送 null 值,否则推送 属性 值。