题目描述
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
解题思路:
- 定义一个辅助队列queue
- 先将根节点入队。再开始对队列进行出队操作,并打印出该节点。每次出队的时候,就将出队的节点的左右节点分别入队,如此循环。
代码
void printFormTopToBottom(TreeNode root){
if (root == null) {
return;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root); // 根节点入队
while (!queue.isEmpty()) {
// 从队里里拿出一个节点的时候,将这个节点的左右子树分别入队。
TreeNode tmp = queue.poll();
if (tmp.left != null) {
queue.offer(tmp.left);
}
if (tmp.right != null) {
queue.offer(tmp.right);
}
System.out.print(tmp.value);
}
}






网友评论