10081_AA

导航

剑指offer——从上往下打印二叉树

题目描述:从上到下打印二叉树的节点,同一层的从左到右打印

思路:采用队列来存储单层的节点,然后通过删除队列的头结点操作,依次遍历每一层。

代码为:

 1 import java.util.ArrayList;
 2 /**
 3 public class TreeNode {
 4     int val = 0;
 5     TreeNode left = null;
 6     TreeNode right = null;
 7 
 8     public TreeNode(int val) {
 9         this.val = val;
10 
11     }
12 
13 }
14 */
15 //用ArrayList来模拟一个队列
16 public class Solution {
17     public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
18         ArrayList<Integer> list = new ArrayList<>();
19         ArrayList<TreeNode> queue = new ArrayList<>();
20         if (root == null){
21             return list;
22         }
23         queue.add(root); 
24         while(queue.size()!=0){
25             TreeNode temp = queue.remove(0);
26             if(temp.left!=null){
27                 queue.add(temp.left);
28             }
29             if(temp.right!=null){
30                 queue.add(temp.right);
31             }
32             list.add(temp.val);
33         }
34         return list;
35     }
36 }

 

posted on 2019-04-22 21:10  10081_AA  阅读(99)  评论(0编辑  收藏  举报