从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:按层遍历,需要用到队列。
offer():进队列,当使用有容量限制的队列时,比add()性能好。
poll():出队列。
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
Queue<TreeNode> que=new LinkedList<TreeNode>();
ArrayList<Integer> res=new ArrayList<Integer>();
TreeNode temp=null;
if(root==null)
return res;
que.offer(root);
while(!que.isEmpty()){
temp=que.poll();
res.add(temp.val);
if(temp.left!=null)
que.offer(temp.left);
if(temp.right!=null)
que.offer(temp.right);
}
return res;
}