二叉树的层次遍历
1.实现思路
每一层从左到右依次输出;
(1)先将根节点入队
(2)当前节点是队头节点,将其出队并访问,
(I)如果当前节点的左节点不为空将左节点入队,
(ii)如果当前节点的右节点不为空将其入队。所以出队顺序也是从左到右依次出队。
2.代码实现
public void levelIterator(TreeNode root){
//处理空树
if(root == null){
return ;
}
//创建队列
Queue<Integer> queue = new LinkedList<Integer>();
// 根节点入队
queue.offer(root);
TreeNode cur=null;
while(! queue.isEmpty()){
//头节点出队,访问元素,并访问其左右子树
cur = root.poll;
if(cur.left != null){
queue.offer(cur.left);
}
if(cur.right != null){
queue.offer(cur.right);
}
}
}