(剑指Offer)面试题61:把二叉树打印成多行
来源:互联网 发布:知乎 歼20 2021 编辑:程序博客网 时间:2024/05/24 01:39
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
思路分析:
这道题和剑指offer 的60题很像,但是比60题要简单。
使用队列从左到右来保存每一层的节点,用队列的长度size来表示每一层需要打印的节点个数,通过更新size来实现每一层的遍历。
import java.util.*;/*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>> lists = new ArrayList<ArrayList<Integer>>(); if(pRoot ==null){ return lists; } Queue<TreeNode> queue = new LinkedList<>(); TreeNode tmp = null; queue.offer(pRoot); while(!queue.isEmpty()){ int size = queue.size(); ArrayList<Integer> list = new ArrayList<>(); while(size -- >0){ tmp = queue.poll(); list.add(tmp.val); if(tmp.left!=null){ queue.offer(tmp.left); } if(tmp.right!= null){ queue.offer(tmp.right); } } //更新size size = queue.size(); lists.add(list); } return lists; }
阅读全文
0 0
- 剑指offer-面试题60:把二叉树打印成多行
- 剑指offer--面试题60:把二叉树打印成多行
- 剑指offer-面试题60-把二叉树打印成多行
- 剑指offer 面试题60 把二叉树打印成多行
- 【剑指Offer】面试题60:把二叉树打印成多行
- (剑指Offer)面试题61:把二叉树打印成多行
- 剑指offer面试题60 把二叉树打印成多行(Java实现)
- 剑指Offer面试题60:把二叉树打印成多行 Java实现
- 剑指offer面试题[60]-将二叉树打印成多行
- java面试题(剑指offer):之字形打印二叉树
- 《剑指Offer》学习笔记--面试题60:把二叉树打印出多行
- 【剑指Offer学习】【面试题60:把二叉树打印出多行】
- 剑指offer--把二叉树打印成多行
- 《剑指offer》把二叉树打印成多行
- 剑指Offer--把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- [剑指offer]把二叉树打印成多行
- UITableView添加到UIViewController的view时显示问题
- javascript鼠标滚轮事件
- 对for循环的认识以及break,continue,goto语句的区别
- getopt()函数
- java输出两个日期的相差天数
- (剑指Offer)面试题61:把二叉树打印成多行
- XTU OJ Highway(树的直径)
- 从追MM到23种设计模式(贼形象)
- Mplayer 音量控制
- 知生涯—职业规划—如何规划大一新生4年生涯?
- MyBatis-----MyBatis插入返回主键ID
- 常熟火灾到底啥情况,mindmanager告诉你
- Android 利用APT对网络请求进行极简封装
- mybatis 缓存(一) 一级缓存