从上到下打印二叉树

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

例如:

给定二叉树: [3,9,20,null,null,15,7],

             3
            /   \
         9      20
                 /    \
             15       7

返回:

[3,9,20,15,7]

解法:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/solution/mian-shi-ti-32-i-cong-shang-dao-xia-da-yin-er-ch-4/

 1 public int[] levelOrder(TreeNode root) {
 2         if(root==null){
 3             return new int[0];
 4         }
 5         Queue<TreeNode> queue = new LinkedList<TreeNode>();
 6         queue.add(root);
 7         List<Integer> list = new ArrayList<Integer>();
 8         while(!queue.isEmpty()){
 9             TreeNode node = queue.poll();
10             list.add(node.val);
11             if(node.left!=null){
12                 queue.add(node.left);
13             }
14             if(node.right!=null){
15                 queue.add(node.right);
16                 
17             }
18         }
19         int[] arr = new int[list.size()];
20         for(int i=0;i<list.size();i++){
21             arr[i]=list.get(i);
22         }
23         return arr;
24     }

 


 

 

posted @ 2020-08-11 17:44  王余阳  阅读(165)  评论(0)    收藏  举报