解题思路:
与LCR. 彩灯装饰记录 I类似,增加了分层输出。
class Solution {
public List<List<Integer>> decorateRecord(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
List<List<Integer>> res = new ArrayList<>();
if(root != null) queue.add(root);
while(!queue.isEmpty()) {
List<Integer> tmp = new ArrayList<>();
for(int i = queue.size(); i > 0; i--) {
TreeNode node = queue.poll();
tmp.add(node.val);
if(node.left != null) queue.add(node.left);
if(node.right != null) queue.add(node.right);
}
res.add(tmp);
}
return res;
}
}
注意:
for循环处不能改为for(int i=0;i<queue.size();i++),必须先将queue.size()赋值给i,不然queue.size()的值会变化,导致循环次数增加 。