按层遍历打印二叉树(分层) -- 漫漫算法路 刷题篇
来源:互联网 发布:印尼语翻译软件 编辑:程序博客网 时间:2024/05/16 21:32
有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。
给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。
import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class TreePrinter { public int[][] printTree(TreeNode root) { // write code here ArrayList<ArrayList<Integer>> alllist = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> list = new ArrayList<Integer>(); LinkedList<TreeNode> que = new LinkedList<TreeNode>(); if(root == null){ return null; } TreeNode last = root; TreeNode nlast = last; TreeNode node = null; que.add(root); while(!que.isEmpty()){ node = que.poll(); list.add(node.val); if(node.left!=null){ que.add(node.left); nlast=node.left; } if(node.right!=null){ que.add(node.right); nlast=node.right; } if(node==last){ alllist.add(list); last=nlast; list=new ArrayList<Integer>(); } } int[][] res = new int[alllist.size()][]; for(int i=0;i<alllist.size();i++){ res[i] = new int[alllist.get(i).size()]; for(int j=0;j<alllist.get(i).size();j++) res[i][j] = alllist.get(i).get(j); } return res; } }
阅读全文
0 0
- 按层遍历打印二叉树(分层) -- 漫漫算法路 刷题篇
- 按层遍历二叉树(不分层) -- 漫漫算法路 刷题篇
- 【二叉树】分层遍历二叉树和打印二叉树第k层节点
- 二叉树后序遍历数组 -- 漫漫算法路 刷题篇
- 重建二叉树 -- 漫漫算法路 刷题篇
- 二叉树分层遍历(含之字形打印)
- 【算法题】分层遍历二叉树
- 递归按层遍历二叉树算法
- 顺时针打印矩阵 -- 漫漫算法路 刷题篇
- 二叉树的镜像 -- 漫漫算法路 刷题篇
- 分层打印二叉树
- 分层打印二叉树
- 按层打印二叉树的节点【层次遍历变形】
- 二叉树的遍历以及按层打印
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- 分层遍历二叉树
- java8指Lambda
- 1.RPC框架的简单实现(参考dubbo框架的基本原理)
- 新手--从网络加载图片并存储在本地,断开网络后依然可以显示图片
- Vue调用百度地图
- 中石油 Teacher’s Day
- 按层遍历打印二叉树(分层) -- 漫漫算法路 刷题篇
- Android M AudioPolicy 分析
- JVM(3):Java GC算法 垃圾收集器
- 单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件)
- java连接my sql数据库以及增删改查方法的实现
- SharePoint 2013 安装.NET Framework 3.5 报错
- SSRF漏洞
- Jetson-tx1 编译gst-rtsp-server-1.8.1
- Redis4基于CentOS6集群搭建