1. 广度优先搜索模板C++
1.1 最短路径问题模板
/**
* Return the length of the shortest path between root and target node.
*/
int BFS(Node root, Node target) {
queue<Node> tem_queue;
int step = 0;
tem_queue.push(root);
while(!tem_queue.empty()){
step += 1;
if(tem_queue.front().value = target.value){
return step;
}
if(root.left != nullptr)tem_queue.push(root.left);
if(root.right != nullptr)tem_queue.push(root.right);
tem_queue.pop();
}
return -1;
}
1.2 非重复遍历问题模板
有两种情况你不需要使用哈希集:
你完全确定没有循环,例如,在树遍历中;
你确实希望多次将结点添加到队列中。
### 1.1 最短路径问题模板
```c
/**
* Return the length of the shortest path between root and target node.
*/
int BFS(Node root, Node target) {
//TODO
return -1; // there is no path from root to target
}