剑指Offer------把二叉树打印成多行(层序遍历)
来源:互联网 发布:天谕玉虚捏脸数据下载 编辑:程序博客网 时间:2024/06/15 02:32
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
<分析>:
本题就是多了个条件
一层输出一行
那么就多设置两个变量即可,
一个此行开始start,另一个此行结束end
当遍历到end时,就将这行数据存入list中即可
package com.ex.string;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}}/** * * @author 周颖 * @date 2017年10月13日 下午9:12:42 * @Decription 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 */public class Ex7 {ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {ArrayList<ArrayList<Integer>> result = new ArrayList<>();if (pRoot==null) {return result;}Queue<TreeNode> queue = new LinkedList<>();ArrayList<Integer> list = new ArrayList<>();//根结点入队queue.offer(pRoot);//第一行只有一个结点,故终点为1int start=0,end=1;while(!queue.isEmpty()){TreeNode node = queue.poll();list.add(node.val);start++;if (node.left!=null) {queue.offer(node.left);}if (node.right!=null) {queue.offer(node.right);}if (start==end) {end=queue.size();start=0;result.add(list);list=new ArrayList<>();}}return result;}}
阅读全文
0 0
- 剑指Offer------把二叉树打印成多行(层序遍历)
- 剑指 offer:从上到下打印二叉树(层序遍历)
- 剑指Offer------从上往下打印二叉树(层序遍历)
- 剑指offer--把二叉树打印成多行
- 《剑指offer》把二叉树打印成多行
- 剑指Offer--把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- [剑指offer]把二叉树打印成多行
- 剑指offer|把二叉树打印成多行
- 【剑指Offer】把二叉树打印成多行
- 剑指offer 把二叉树打印成多行
- 《剑指offer》把二叉树打印成多行
- 剑指offer-把二叉树打印成多行
- 剑指offer--把二叉树打印成多行
- 剑指offer--把二叉树打印成多行
- 剑指offer-把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- IntelliJ IDEA报错class is never used
- python正则
- Emscripten教程之入门指导
- 基础(printf 的用法 && 结构体重载运算符)
- Java I/O —— File类
- 剑指Offer------把二叉树打印成多行(层序遍历)
- 链表笔记一
- 习题3
- 1.1股票数据预处理练习
- C#225课的主要内容
- 8. String to Integer (atoi)
- 编写代码模拟三次密码输入
- String和StringBuffer的区别
- 链表排序--归并排序