题目描述
从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。
数据范围
树中节点的数量 [0,1000] 。
样例
输入如下图所示二叉树[8, 12, 2, null, null, 6, null, 4, null, null, null]
8
/ \
12 2
/
6
/
4
输出:[8, 12, 2, 6, 4]
Java 代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
// BFS
public List<Integer> printFromTopToBottom(TreeNode root) {
List<Integer> result = new ArrayList<>();
if(root == null){
return result;
}
Queue<TreeNode> q = new LinkedList<>();
q.offer(root);
result.add(root.val);
while(!q.isEmpty()){
int size = q.size();
for(int i = 0; i < size; i++){
TreeNode temp = q.poll();
if(temp.left != null){
q.offer(temp.left);
result.add(temp.left.val);
}
if(temp.right != null){
q.offer(temp.right);
result.add(temp.right.val);
}
}
}
return result;
}
}