JavaScript算法套路之二叉树的层序遍历

二叉树的层序遍历,也就是二叉树的广度月优先遍历,层序遍历,很好理解,就是一层一层的遍历。想要实现二叉树的层序遍历,还需要借助队列。队列的先进先出,符合一层一层的遍历。

1
2
3
4
5
6
7
8
9
10
11
12
        1
/ \
2 3
/ \ / \
4 5 6 7

// 遍历得到
[
[1],
[2, 3]
[4, 5, 6, 7]
]

相对来说,其实层序遍历比较简单,话不多说。我们直接看代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let levelOrder = (root) => {
let result = [];
let queue = [];
if (!root) return result;
queue.push(root);
while (queue.length) {
let list = [];
for (let i = 0; i < queue.length;i++) {
let cur = queue.shift();
list.push(cur.val);
cur.left && queue.push(cur.left);
cur.right && queue.push(cur.right);
}
result.push(list);
}
return result;
}

是不是很简单呢?

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Lee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信