把二叉树打印成多行
来源:互联网 发布:淘宝店人气 编辑:程序博客网 时间:2024/06/15 02:21
题目:
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
思路:
二叉树的层次遍历,然后将每一层的结点单独打印到一行。
代码:
import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/*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> > result = new ArrayList<ArrayList<Integer> >(); if(pRoot == null) return result; Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(pRoot); int nextLevel = 0;//下一层有多少个结点 int toBePrinted = 1;//目前打印的结点还剩多少个 ArrayList<Integer> temp = new ArrayList<Integer>(); while(!queue.isEmpty()){ TreeNode pNode = queue.poll(); temp.add(pNode.val); if(pNode.left != null){ queue.offer(pNode.left); ++ nextLevel; } if(pNode.right != null){ queue.offer(pNode.right); ++ nextLevel; } --toBePrinted; if(toBePrinted == 0){ result.add(temp); temp = new ArrayList<Integer>(); toBePrinted = nextLevel; nextLevel = 0; } } return result; }}
阅读全文
0 0
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- jmeter_正则表达式提取器
- 2017.07.06-2017.07.07回顾 信息熵的坑 多重共线性实践
- 关于复制文字按钮
- 解决 IDEA 中src下xml等资源文件无法读取的问题
- JZOJ 7.9B组
- 把二叉树打印成多行
- sqlserver sp_OACreate使用例子
- 软件测试之App测试-安装卸载测试
- 泛型基础------(1)
- Win32 Application 、Win32 Console Application、MFC工程项目
- 如何写一篇数据分析报告
- 通用Dao
- Android手势
- 一些喜欢的歌