不分行从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入{8,6,10,#,#,2,1},如以下图中的示例二叉树,则依次打印8,6,10,2,1(空节点不打印,跳过),请你将打印的结果存放到一个数组里面,返回。
借助于一个队列。
import java.util.*;
import java.util.ArrayList;
public class Solution {
public ArrayList PrintFromTopToBottom(TreeNode root) {
if (root == null) {
return new ArrayList();
}
ArrayList res = new ArrayList<>();
Queue queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
res.add(node.val);
if (node.left != null) {
queue.offer(node.left);
}
if (node.right != null) {
queue.offer(node.right);
}
}
return res;
}
}



