二叉树广度优先搜索
XMit Lv3

把每层的值的放到一个数组里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var breadthTraversal = function(root) {
let result = [] //定义保存广度遍历结果的数组
let queue = [root] //将二叉树放入队列
if (root) { //判断二叉树是否为空
while (queue.length) { //判断队列是否为空
let node = queue.shift() //从队列中取出一个结点
result.push(node.value) //将取出结点的值保存到数组
if (node.left) queue.push(node.left) //如果存在左子树,将左子树放入队列
if (node.right) queue.push(node.right) //如果存在右子树,将右子树放入队列
}
}
return result
}
breadthTraversal(tree);

把每层的值的放到一个二维数组里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var breadthTraversal = function(root) {
var result = [];
if (root) {
var queue = [root];
while (queue.length !== 0) {
let temp = []
for (let i = 0, len = queue.length; i < len; i++) {
let node = queue.shift()
temp.push(node.value);
if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}
result.push(temp)
}
}
return result
}
breadthTraversal(tree);
由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务