参考链接
-
//JavaScript
const visited = new Set()
const dfs = node => {
if (visited.has(node)) return
visited.add(node)
dfs(node.left)
dfs(node.right)
}
-
//JavaScript
const bfs = (root) => {
let result = [], queue = [root]
while (queue.length > 0) {
let level = [];
let n = queue.length;
for (let i = 0; i < n; i++) {
let node = queue.pop()
level.push(node.val)
if (node.left) queue.unshift(node.left)
if (node.right) queue.unshift(node.right)
}
result.push(level)
}
return result
};
实战题目
二叉树的层序遍历(字节跳动、亚马逊、微软在半年内面试中考过)
- 最小基因变化
- 括号生成(字节跳动、亚马逊、Facebook 在半年内面试中考过)
在每个树行中找最大值(微软、亚马逊、Facebook 在半年内面试中考过)
课后作业
单词接龙(亚马逊在半年内面试常考)
- 单词接龙 II (微软、亚马逊、Facebook 在半年内面试中考过)
- 岛屿数量(近半年内,亚马逊在面试中考查此题达到 350 次)
- 扫雷游戏(亚马逊、Facebook 在半年内面试中考过)