深度优先遍历的算法口诀
访问根节点
对根节点的children挨个进行深度优先遍历
const dfs = (root) => {
console.log(root.val)
root.children.foreach(dfs(item))
}
shift()方法用于删除数组的第一个元素,并返回该元素。注意,该方法会改变原数组。
广度优先遍历口诀
新建一个队列,把根节点入队
把队头出队并访问
把对头的children挨个入队
重复第二、三步操作,直到队列为空
const bfs = (root) => {
const q = [root]
while(q.length > 0) {
const n = q.shift()
console.log(n.val)
n.children.foreach(child => {
q.push(child)
})
}
}