import java.util.*; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;

public TreeNode(int val) {
    this.val = val;

}

} */

public class Solution {

public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {

    //很明显这是广度优先遍历,没什么可说的
    if(root == null){
        return new ArrayList();
    }
    
    Queue<TreeNode> queue = new LinkedList<TreeNode>();
    queue.add(root);
    ArrayList<Integer> resList = new ArrayList<Integer>();
    while(!queue.isEmpty()){
        TreeNode tmpNode = queue.poll();
        resList.add(tmpNode.val);
        if(tmpNode.left != null){
            queue.offer(tmpNode.left);
        }
        if(tmpNode.right != null){
            queue.offer(tmpNode.right);
        }
    }
    return resList;
}

}