BFS广度遍历代码模板

Posted gaopengpy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BFS广度遍历代码模板相关的知识,希望对你有一定的参考价值。

BFS广度遍历代码模板

/** 广度遍历代码模板 */
public class TestBFS {

  public List<List<Integer>> bsf(TreeNode root) {
      // 如果节点为空
      if (root == null) {
          return null;
      }

      List<List<Integer>> result = new ArrayList<>();

      Queue<TreeNode> queue = new LinkedList<>();
      queue.add(root);

      while (!queue.isEmpty()) {
          int size = queue.size();
          List<Integer> level = new ArrayList<>();

          for (int i = 0; i < size; i++) {

              TreeNode curNode = queue.poll();
              if (curNode == null) {
                  continue;
              }
              level.add(curNode.val);
              queue.add(curNode.left);
              queue.add(curNode.right);
          }

          if (!level.isEmpty()) {
              result.add(level);
          }

      }

      return result;
  }
}

 

以上是关于BFS广度遍历代码模板的主要内容,如果未能解决你的问题,请参考以下文章

代码:(bfs模板)立体推箱子

图的深度优先遍历DFS和广度优先遍历BFS(邻接矩阵存储)超详细完整代码进阶版

笃学不倦|BFS广度优先遍历详解

图的遍历(BFS)

题目1457:非常可乐(广度优先遍历BFS)

算法模板-广度优先遍历