也许是重复或奇怪的问题,但我无法在任何地方找到答案:
我想以广度优先搜索顺序打印出具有空兄弟的不平衡二叉树的路径。我的代码可以工作,并且我尝试改进它,但我有点卡住了。我只是想知道是否有更聪明的方法来代替多次检查。
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
值,否则推送属性值。
关于javascript - 按级别顺序遍历时打印不平衡二叉树的空同级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61344865/