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;
        }
        
    }
    

      

  • 相关阅读:
    meta 标签禁止缩放失效
    [UE4]打包EXE
    [UE4]Set Array Elem
    [UML]用例图
    [UE4]函数参数引用
    阻止移动鼠标双击页面放大, no double tap
    spring boot入门 -- 介绍和第一个例子
    SpringBoot 启动错误搜集
    spring boot 启动找不到或无法加载主类
    Spring Boot中Starter是什么
  • 原文地址:https://www.cnblogs.com/BaoZiY/p/11183691.html
Copyright © 2011-2022 走看看