题目描述
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
例如:给定二叉树: [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 | /** |