题目描述
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:给定二叉树: [3,9,20,null,null,15,7]
1 | 3 |
返回其层次遍历结果:
1 | [ |
代码实现
BFS(队列 + 迭代)
原理就是 BFS 一层一层地遍历,借助队列实现。
这个题的一个小技巧就是 let len = queue.length;
这行代码锁住了当前 for
循环的次数
1 | /** |
DFS(递归)
根据 result 的长度和 depth 比较,如果 result.length === depth
,就创建一个空的数组。
这里的 root.left && dfs(root.left, depth+1);
和 root.right && dfs(root.right, depth+1);
利用了 JavaScript
中 &&
运算符的原理。
1 | /** |