Q22_把二叉树打印成多行
来源:互联网 发布:众泰e200和知豆 编辑:程序博客网 时间:2024/06/14 21:37
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
package Proxy;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;}}public class Q22_把二叉树打印成多行 {class Solution {ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {if (pRoot == null) {return new ArrayList<ArrayList<Integer>>();}// 层次遍历ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();Queue<TreeNode> queue1 = new LinkedList<TreeNode>(); // 奇数行队列Queue<TreeNode> queue2 = new LinkedList<TreeNode>(); // 偶数行队列queue1.add(pRoot);while (!queue1.isEmpty() || !queue2.isEmpty()) {// 如果queue1不空,queue2空if (!queue1.isEmpty()) {ArrayList<Integer> hang = new ArrayList<Integer>();// 输出queue1所有节点while (!queue1.isEmpty()) {TreeNode curNode = queue1.poll();hang.add(curNode.val);if (curNode.left != null) {queue2.add(curNode.left);}if (curNode.right != null) {queue2.add(curNode.right);}}result.add(hang);}// 如果queue2非空,queue1空if (!queue2.isEmpty()) {ArrayList<Integer> hang = new ArrayList<Integer>();// 输出queue2所有节点while (!queue2.isEmpty()) {TreeNode curNode = queue2.poll();hang.add(curNode.val);if (curNode.left != null) {queue1.add(curNode.left);}if (curNode.right != null) {queue1.add(curNode.right);}}result.add(hang);}}// 处理完毕,输出return result;}}}
阅读全文
0 0
- Q22_把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- 把二叉树打印成多行
- Java常见帮助类(5)地图地址帮助类
- iOS 简单的视频直播功能开发(实时视音频流录制编码+RTMP传输+实时拉流解码播放)
- Uber 谷歌Waymo也开始研发自动驾驶卡车
- Java基础——使用三元运算符判断一个数的奇偶性
- React Native 介绍
- Q22_把二叉树打印成多行
- keras CNTK 后端
- 自制Android RSS阅读器
- ajax知识总结
- HDU
- struts2第十三讲学习笔记,拦截器interceptor的详细讲解
- svn提交代码的时候提示Please execute the 'Cleanup' command
- Oracle如何查询当前会话的sid
- Java常见帮助类(6)JSON帮助类