层序遍历即将二叉树的每一层分别遍历,直到叶子节点全部被遍历完。我们可以借助队列先进先出的思想,将每一个节点放入队列中,抛出打印,再判断是否存在左右节点,并将左右节点也放入队列中,抛出打印,直到最有一个节点不存在左子数也不存在右子树,说明遍历完毕。
代码如下
void binartLevel(TreeNode root){
Queue<TreeNode> queue = new LinkedList<>();
if (root !=null){
queue.offer(root);
}
while (!queue.isEmpty()){
//拿到对头元素
TreeNode cur = queue.poll();
System.out.print(cur.value+" ");
if (cur.left!=null){
queue.offer(cur.left);
}
if (cur.right!=null){
queue.offer(cur.right);
}
}