题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:就是二叉树的层次遍历么,借助一个队列就可以了
public static ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> list = new ArrayList<>();
if (root == null)
return list;
Queue<TreeNode> queue = new ArrayDeque<TreeNode>();
queue.add(root);
while (!queue.isEmpty()) {
TreeNode treeNode = queue.poll();
if (treeNode.left != null) {
queue.offer(treeNode.left);
}
if (treeNode.right != null) {
queue.offer(treeNode.right);
}
list.add(treeNode.val);
}
return list;
}