剑指offer Java题解之JZ32 从上往下打印二叉树

题目:

不分行从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入{8,6,10,#,#,2,1},如以下图中的示例二叉树,则依次打印8,6,10,2,1(空节点不打印,跳过),请你将打印的结果存放到一个数组里面,返回。

剑指offer Java题解之JZ32 从上往下打印二叉树_第1张图片


示例:

输入:{8,6,10,#,#,2,1}

返回值:[8,6,10,2,1]


思路:

简单题层序遍历挨个添加就行了

复杂度:


时间复杂度:遍历O(n) 

空间复杂度:Arraylist O(n)

代码:

 public ArrayList PrintFromTopToBottom(TreeNode root) {
        //层序
        Queue queue = new LinkedList<>();
        ArrayList res = new ArrayList<>();
        if(root == null) return res;
        queue.add(root);
        while(!queue.isEmpty()){
            int len = queue.size();
            for(int i = 0;i

你可能感兴趣的:(剑指offer,Java解集,java,算法,二叉树,数据结构)