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的所有未访问过的邻居
}
}
本文来自博客园,作者:荧惑微光,转载请注明原文链接:https://www.cnblogs.com/yinghuoweiguang/p/15799462.html

浙公网安备 33010602011771号