1 /*
2 思路:借助栈来实现
3 树为空时 返回空
4 树不为空 将根节点如队列
5 然后将队列首元素出队列 如果该元素有左子节点那么左子节点入队了 如果该元素有右子节点那么右子节点入队列
6 最后 进队列的顺序也就是出队列的顺序
7 */
8 import java.util.ArrayList;
9 import java.util.*;
10 import java.util.Iterator;
11 /**
12 public class TreeNode {
13 int val = 0;
14 TreeNode left = null;
15 TreeNode right = null;
16
17 public TreeNode(int val) {
18 this.val = val;
19
20 }
21
22 }
23 */
24 public class Solution {
25 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
26 Queue <TreeNode>queue=new LinkedList<TreeNode>();
27 ArrayList <Integer>list=new ArrayList<Integer>();
28 if(root==null)return list;
29 queue.offer(root);
30 while(!queue.isEmpty()){
31 TreeNode t=queue.poll();
32 list.add(t.val);
33 if(t.left!=null){
34 queue.offer(t.left);
35 }
36 if(t.right!=null){
37 queue.offer(t.right);
38 }
39 }
40 return list;
41
42 }
43 }