剑指offer—把二叉树打印成多行
来源:互联网 发布:淘宝店铺装修宝贝 编辑:程序博客网 时间:2024/06/11 04:07
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
import java.util.LinkedList;import java.util.ArrayList;import java.util.Queue;public class Solution { ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); if(pRoot==null) return res; Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(pRoot); int numOfThisLine = 1; int numOfNextLine = 0; ArrayList<Integer> floor = new ArrayList<Integer>(); while(!queue.isEmpty()){ TreeNode temp = queue.poll(); floor.add(temp.val); numOfThisLine--; if(temp.left!=null){ queue.add(temp.left); numOfNextLine++; } if(temp.right!=null){ queue.add(temp.right); numOfNextLine++; } if(numOfThisLine==0){ res.add(floor); numOfThisLine = numOfNextLine; numOfNextLine = 0; floor = new ArrayList<Integer>(); } } return res; }}
和题目从上之下打印二叉树很类似,只不过这里有一个限制条件,必须一行一行的打印,同样也是是一个队列,不断从队尾添加元素,以及从对头扫描并删除元素,为了实现一行一行的打印,这里需要设置两个变量,一个是当前层中还没有打印的结点个数,一个是下行需要打印结点的个数
阅读全文
0 0
- 剑指offer--把二叉树打印成多行
- 《剑指offer》把二叉树打印成多行
- 剑指Offer--把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- [剑指offer]把二叉树打印成多行
- 剑指offer|把二叉树打印成多行
- 【剑指Offer】把二叉树打印成多行
- 剑指offer 把二叉树打印成多行
- 《剑指offer》把二叉树打印成多行
- 剑指offer-把二叉树打印成多行
- 剑指offer--把二叉树打印成多行
- 剑指offer--把二叉树打印成多行
- 剑指offer-把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- 《剑指offer》——把二叉树打印成多行
- 剑指Offer——把二叉树打印成多行
- 剑指offer——把二叉树打印成多行
- ScrollView垂直滚动
- Power2Go Platinum(威力酷烧)官方破解版V11.0.2330下载 | power2go 11 破解版含威力酷烧11 激活方法
- Android TV 焦点与按键事件分析
- Zookeeper基本原理
- 删数游戏
- 剑指offer—把二叉树打印成多行
- 小的疑问
- 获取app相关路径下所有文件大小
- MyCat介绍
- 如何成为一名卓越的前端工程师
- 蓝桥杯 算法训练 字符删除
- django 文件上传
- java8新特性-- stream
- linux_mysql操作命令