【发布时间】:2021-09-19 12:47:13
【问题描述】:
我偶然发现了一个解决方案,
var minDepth = function(root) {
if(!root) return 0;
let depth = 1;
let queue = [root];
if(!root.left && !root.right) return depth;
while(queue.length > 0 ){
let queueLength = queue.length;
for(let i = 0; i < queueLength; i++){
let node = queue.shift();
if(!node.left && !node.right) return depth;
else{
if(node.left) queue.push(node.left);
if(node.right) queue.push(node.right);
}
}
depth++;
}
return depth;
};
此代码在未将队列长度分配给变量的情况下给出错误答案。
let queueLength = queue.length;
for(let i = 0; i < queueLength; i++) ...
这是怎么回事?
示例:
输入 - [3, 9, 20, null, null, 15, 7]
输出:
使用变量 - 2(右)
没有 var - 1
【问题讨论】:
标签: javascript data-structures binary-tree breadth-first-search