解题思路:
层序遍历就是从上到下,从左到右逐个遍历,层序遍历相对于其他遍历简单,但是代码实现起来没有那么简单 ,我们可以利用队列去实现他,利用队列先进先出的特点去实现:
首先判断根节点,如果为空就返回,如果不为空,就把根节点放进队列,用while循环来判断当前队列是否为空,再定义一个变量来存放根节点的值,然后打印,打印完再去判断根节点的左右子树,如果不为空,就入队,依次执行下去我们可以得到层序遍历,代码:
publicvoidlevelOrder1(TreeNoderoot) { if (root==null) { return; } Queue<TreeNode>queue=newLinkedList<>(); queue.offer(root); while (!queue.isEmpty()) { TreeNodecur=queue.poll(); System.out.print(cur.val+" "); if (cur.left!=null) { queue.offer(cur.left); } if (cur.right!=null) { queue.offer(cur.right); } } }