题目链接
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
与上题几乎一样
解题思路
public class Solution {
public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
Queue<TreeNode> q = new LinkedList<>();
q.add(pRoot);
while (!q.isEmpty()) {
ArrayList<Integer> row = new ArrayList<>();
int cnt = q.size();
while (cnt-- > 0) {
TreeNode node = q.remove();
if (node==null) continue;
row.add(node.val);
q.add(node.left);
q.add(node.right);
}
if (row.size()>0) res.add(row);
}
return res;
}
}
public class Solution {
public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
ArrayList<Integer> row = new ArrayList<>();
Queue<TreeNode> q = new LinkedList<>();
q.add(pRoot);
while (!q.isEmpty()) {
int cnt = q.size();
while (cnt-- > 0) {
TreeNode node = q.remove();
if (node==null) continue;
row.add(node.val);
q.add(node.left);
q.add(node.right);
}
if (row.size()>0) {
res.add(new ArrayList<>(row));
row.clear();
}
}
return res;
}
}