# 从上到下打印二叉树
例如有棵树是这样的:
1
/ \
2 3
/ \ / \
4 6 7 5
@前端进阶之旅: 代码已经复制到剪贴板
该课树转换为JS代码:
class Node {
constructor (value, left = null, right = null) {
this.value = value;
this.left = left;
this.right = right;
}
}
const tree = new Node(1, new Node(2, new Node(4), new Node(6)), new Node(3, new Node(7), new Node(5)));
@前端进阶之旅: 代码已经复制到剪贴板
(为后面三题的前置条件)
# 题目1-不分行从上到下打印
# 题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
需要输出:
[1, 2, 3, 4, 6, 7, 5]
@前端进阶之旅: 代码已经复制到剪贴板
# 解题思路
这道题其实很简单啦,看这输出结果,不就是求二叉树的广度遍历吗?
# coding
OK👌,直接开搞:
function print(node) {
let list = [];
let stack = [node];
while (stack.length !== 0) {
node = stack.shift();
list.push(node.value);
if (node.left) stack.