数据结构与算法--之BFS 广度优先搜索算法
程序员文章站
2022-05-23 10:51:16
...
树的BFS 广度优先搜索算法。遍历获取每一层的数据。然后获取树的最大深度
public int maxDepth(TreeNode root) {
if(root == null) return 0; // 考虑书为空的情况下 BFS无法自动处理
Queue<TreeNode> queue = new LinkedList<>(); // 使用队列来记录各层几点
queue.offer(root); // 根节点入对
int res = 0; // 目标值
while (!queue.isEmpty()){ // 判断是否还有没有遍历完的节点
int size = queue.size(); // 开始遍历新一层节点前,队列里即为新一层全部节点
while (size>0){ // 需将这一层全部遍历完
TreeNode poll = queue.poll(); // 遍历节点
if(poll.left!=null){
queue.offer(poll.left); // 左子树入队列
}
if(poll.right!=null){
queue.offer(poll.right); // 右子树入队列
}
size--;
}
res++; // 新一层节点遍历完成 节点值加1
}
return res;
}
推荐阅读
-
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
-
数据结构与算法-----BFS与DFS(广度优先搜索与深度优先搜索)
-
数据结构与算法_深度优先搜索(DFS)与广度优先搜索(BFS)详解
-
Java数据结构与算法:图、图的概念、深度优先搜索DFS、广度优先搜索BFS、思路分析、代码实现
-
Java数据结构与算法——深度优先搜索与广度优先搜索
-
数据结构与算法——广度和深度优先搜索
-
BFS(广度优先搜索算法)和DFS(深度优先搜索算法)
-
数据结构与算法————图的遍历DFS深度优先搜索和BFS广度优先搜索
-
算法学习之BFS广度优先搜索(java版)
-
java数据结构与算法之二叉树深度优先和广度优先遍历