题目:
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印
思路:
每一次打印一个节点的时候,如果该节点有子节点,则把字节点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面的操作,直到队列中所有的节点都打印出来
代码实现:
import java.util.LinkedList; import java.util.Queue; public class Twentieth { public class BinaryTreeNode{ BinaryTreeNode left; BinaryTreeNode right; int val; } public static void printBinaryTreeNode(BinaryTreeNode root){ if(root != null){ Queue<BinaryTreeNode> list = new LinkedList<>(); list.add(root); BinaryTreeNode cur; while(!list.isEmpty()){ cur = list.remove(); System.out.print(cur.val + " "); if(cur.left != null){ list.add(cur.left); } if(cur.right != null){ list.add(cur.right); } } } } }