使用队列来进行二叉树的层次遍历搜索
代码模板:
Queue<TreeNode> queue = new LinkedList<>();
//先先队列中加入根结点root
queue.add(root);
while(!queue.isEmpty()){
int len = queue.size();//用于记录当前层次的结点个数
while(len > 0){
//只要len 大于0 就表示该层还有结点没有遍历完
Node node = queue.remove();//队列中移除最先进入的元素(也就说该层最左边的结点)
//记录 当前结点的值
//判断当前结点 左右结点入队(队尾加入)
if(node.left !=null) queue.add(node.left);
if(node.right !=null queue.add(node.right);
len--;//表示遍历了一个该层最左的结点
}
}