BFS:使用递归或队列

之前一般遇到题目考虑使用图遍历的时候,基本上来就深度优先的递归调用,但是忘记了还有BFS方式

二叉树的按层遍历属于啥呢,就属于广度优先,使用了啥呢,使用了队列
所以可以把当前遍历到的节点的所有下一跳都存到队列里,然后队列的头肯定是这个节点都同级节点,弹出来继续遍历就行了

Queue<Node> queue=new LinkedList()<>;
queue.add(p);
while(!queue.isEmpty(){
	Node p=queue.poll();
	visit(p);
	while(p.hasnext){
		queue.add(p.next);//存入p的所有未访问过的邻居
	}
}
posted @ 2022-01-13 19:57  荧惑微光  阅读(169)  评论(0)    收藏  举报