zoukankan      html  css  js  c++  java
  • 32

    面试题32 - I. 从上到下打印二叉树

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

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

        3
       / 
      9  20
        /  
       15   7
    

    返回:

    [3,9,20,15,7]
    

    提示:

    1. 节点总数 <= 1000
    class Solution {
        public int[] levelOrder(TreeNode root) {
            if(root == null){
                return new int[]{};
            }
            List<Integer> list = new ArrayList<>();
            Queue<TreeNode> que= new LinkedList<>();
            que.offer(root);
            while(!que.isEmpty()){
                int size = que.size();
                while(size-- > 0){
                    TreeNode node = que.poll();
                    list.add(node.val);
                    if(node.left != null){
                        que.add(node.left);
                    }
                    if(node.right != null){
                        que.add(node.right);
                    }
                }
            }
            //注意不能直接用list.toArray(new int[0]);
            //若用 :
            // List<Integer> 转 Integer[]
            // Integer[] integers2 = list1.toArray(new Integer[0]);
            //  调用toArray。传入参数T[] a。这种用法是目前推荐的。
            // List<String>转String[]也同理。
     
            // List<Integer> 转 int[]
            // int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
            // 想要转换成int[]类型,就得先转成IntStream。
            // 这里就通过mapToInt()把Stream<Integer>调用Integer::valueOf来转成IntStream
            // 而IntStream中默认toArray()转成int[]。
            int[] arr = new int[list.size()];
            for(int i = 0;i < list.size();i++){
                arr[i] = list.get(i);
            }    
            return arr;
        }
    }
    一回生,二回熟
  • 相关阅读:
    出现Unexpected token, expected ","报错原因
    select属性的作用
    程序员无广告版百度
    VUE核心组件
    ajax的作用
    SSH整合
    Unity安装教程
    bean的生命周期
    BeanFactory
    打印机
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12630039.html
Copyright © 2011-2022 走看看