博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
阅读量:4496 次
发布时间:2019-06-08

本文共 1098 字,大约阅读时间需要 3 分钟。

import java.util.ArrayList;/*public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/import java.util.*;public class Solution {    ArrayList
> Print(TreeNode pRoot) { ArrayList
> arrayList = new ArrayList
>(); if(pRoot == null){ return arrayList; } Queue
q1 = new LinkedList
(); q1.add(pRoot); Queue
q2 = new LinkedList
(); while(!q1.isEmpty() || !q2.isEmpty()){ if(!q1.isEmpty()){ ArrayList
list = new ArrayList
(); while(!q1.isEmpty()){ TreeNode node = q1.poll(); list.add(node.val); if(node.left != null){ q2.add(node.left); } if(node.right != null){ q2.add(node.right); } } arrayList.add(list); }else{ ArrayList
list = new ArrayList
(); while(!q2.isEmpty()){ TreeNode node = q2.poll(); list.add(node.val); if(node.left != null){ q1.add(node.left); } if(node.right != null){ q1.add(node.right); } } arrayList.add(list); } } return arrayList; } }

 

转载于:https://www.cnblogs.com/q-1993/p/10966485.html

你可能感兴趣的文章
【转载】C#通过Remove方法移除DataTable中的某一列数据
查看>>
【转载】C#通过Clone方法快速创建相同架构的DataTable
查看>>
【转载】C#手动往DataTable中末尾新增一行数据
查看>>
【转载】C#通过遍历DataTable的列获取所有列名
查看>>
【转载】C#通过Copy方法快速复制DataTable对象
查看>>
【转载】C#通过Contains方法判断DataTable中是否存在某个列名
查看>>
【转载】C#的Merge方法合并两个DataTable对象的数据
查看>>
【转载】C#通过IndexOf方法获取某一列在DataTable中的索引位置
查看>>
【转载】C#中ArrayList集合类和List集合类的比较
查看>>
【转载】C#的DataTable类Clone及Copy方法的区别
查看>>
【转载】C#中ArrayList集合类使用RemoveAt方法移除指定索引的元素
查看>>
【转载】 C#中ArrayList集合类的使用
查看>>
【转载】C#中ArrayList集合类使用Remove方法指定元素对象
查看>>
【转载】C#中ArrayList集合类使用Add方法添加元素
查看>>
【转载】C#中使用Insert方法往ArrayList集合指定索引位置插入新数据
查看>>
【转载】C#中AddRange方法往ArrayList集合末尾添加另一个集合
查看>>
【转载】如何删除Windows远程桌面保存的账号密码数据
查看>>
【转载】 C#中常见的泛型集合类有哪些
查看>>
【转载】C#的DataTable使用NewRow方法创建新表格行
查看>>
【转载】 C#中ArrayList使用GetRange方法获取某一段集合数据
查看>>