zoukankan      html  css  js  c++  java
  • 剑指Offer——把二叉树打印成多行

    1、题目描述

      从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

    2、代码实现

    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.Queue;
    
    /*
    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
    
        }
    
    }
    */
    public class Solution {
        ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
         ArrayList<ArrayList<Integer>> listAll = new ArrayList<>();
            ArrayList<Integer> list = new ArrayList<>();
            Queue<TreeNode> queue = new LinkedList<>();
            if (pRoot == null) {
                return listAll;
            }
            int start = 0;
            int end = 1;
            queue.add(pRoot);
            while (!queue.isEmpty()) {
                TreeNode temp = queue.remove();
                list.add(temp.val);
                start++;
                if (temp.left != null) {
                    queue.add(temp.left);
                }
                if (temp.right != null) {
                    queue.add(temp.right);
                }
                //这里的end记录的是已经存入queue中的下一层的节点个数
                //当start等于end的事后证明该层的节点已经全部存入了list链表中,需要把list作为对象存入list中
                if (start == end) {
                    //此时把下一层的节点个数也就是队列的长度重新作为end值
                    end = queue.size();
                    //start需要重新置为0
                    start = 0;
                    listAll.add(list);
                    //为了避免上一组的list对后面的操作造成影响,重新创建一个ArrayList<>()赋值给list
                    list = new ArrayList<>();
                }
            }
            return listAll;
        }
        
    }
    

      

  • 相关阅读:
    计算panel的靶向区段长度
    interval的排序,合并,取样等功能
    Bait 和 target的区别
    R 数据拆分到列
    制作annovar注释依赖的cosmic数据库
    制作适用于annovar的COSMIC数据库
    痘痘机理
    属性、域、元组、关系、候选码、主键、外键、关系代数
    how to install emacs25 in ubuntu 14
    Centos Install Emacs
  • 原文地址:https://www.cnblogs.com/BaoZiY/p/11183691.html
Copyright © 2011-2022 走看看