/*
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
比上一个多了一个行的条件.
*/
public class Solution
{
//把每一层的数据都保存在一个list集合内.
ArrayList<ArrayList<Integer>> Print(TreeNode root)
{
Queue<TreeNode> queue = new LinkedList<>();
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
queue.add(root);
//循环遍历
while (!queue.isEmpty())
{
//用来记录这一层的个数
int size = queue.size();
//保存每一层的数据
ArrayList<Integer> list = new ArrayList<>();
//队列内的数据都是一层一层添加的.
while (size-- > 0)
{
TreeNode poll = queue.poll();
list.add(poll.value);
if (poll.right != null)
queue.add(poll.right);
if (poll.left != null)
queue.add(poll.left);
}
res.add(list);
}
return res;
}
}
《剑指offer》NO32.2 分行从上往下打印二叉树 详解 <Java实现>
最新推荐文章于 2021-03-30 18:09:18 发布