树的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;
}