从上向下打印二叉树

 1 import java.util.ArrayList;
 2 import java.util.LinkedList;
 3 import java.util.Queue;
 4 /**
 5 public class TreeNode {
 6     int val = 0;
 7     TreeNode left = null;
 8     TreeNode right = null;
 9 
10     public TreeNode(int val) {
11         this.val = val;
12 
13     }
14 
15 }
16 */
17 public class Solution {
18     public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
19 
20         ArrayList<Integer> list = new ArrayList<Integer>();
21         
22         Queue<TreeNode> queue = new LinkedList<TreeNode>();
23         
24         queue.offer(root); //根结点入queue
25         
26         while(root != null){
27             TreeNode node = queue.poll(); //结点出queue
28             list.add(node.val);
29             
30             //结点的左右孩子入queue
31             if(root.left != null){
32                 queue.offer(root.left);
33             }
34             if(root.right != null){
35                 queue.offer(root.right);
36             }
37             
38             root = queue.peek();
39         }
40 
41         return list;
42     
43     }
44 }
原文地址:https://www.cnblogs.com/jiangyi-uestc/p/5892905.html