BFS
思想
把一些问题抽象成图,从一个点开始,向四周开始扩散。
本质上就是一幅「图」,让你从一个起点,走到终点,问最短路径
BFS 算法都是用队列这种数据结构,每次将一个节点周围的所有节点加入队列。
BFS 找到的路径一定是最短的,但代价就是空间复杂度比 DFS 大很多
空间复杂度O(n)
框架
var levelOrder = function(root) {
if(root == null) return [];
const res = [],quene = [];
quene.push(root);
while(quene.length != 0){
const node = quene.shift();
// 当前节点处理逻辑在这里
res.push(node.val);
if(node.left !== null){
quene.push(node.left);
}
if(node.right !== null){
quene.push(node.right);
}
}
return res;
};
最后更新于
这有帮助吗?