import java.util.*; import java.util.ArrayList; /** 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<>(); } List<Integer> list = new ArrayList<>(); Queue<TreeNode> queue = new ArrayDeque<>(); queue.offer(root); while (!queue.isEmpty()) { TreeNode c = queue.poll(); list.add(c.val); if (c.left != null) { queue.offer(c.left); } if (c.right != null) { queue.offer(c.right); } } return (ArrayList<Integer>) list; } }