前、中、后序遍历
前序遍历(根、左、右)
preOrder(root){ if(!root) return XXXXXX(root) // 处理逻辑,比如放入数组 preOrder(root.left) preOrder(root.right)}
中序遍历(左、根、右)
midOrder(root){ if(!root) return midOrder(root.left) XXXXX(root) // 处理逻辑,比如放入数组 midOrder(root.right)}
后序遍历(左、右、根)
lastOrder(root){ if(!root) return lastOrder(root.left) lastOrder(root.right) XXXXX(root) // 处理逻辑,比如放入数组}
层序遍历(BFS 广度优先搜索)
// bfs就不递归了bfs(root){ let queue = [] queue.push(root) while(queue.length){ const queLen = queue.length for(let i = 0;i++;i<queLen){ const node = queue.shift() XXXXX(node) // 处理逻辑,比如放入数组 if(node.left) queue.push(node.left) if(node.right) queue.push(node.right) } }}