层级遍历
剑指中的这类型题目的外围代码
while(!queue.isEmpty()){int size=queue.size();// 这里其实不这么写也行, 这么写更加清晰直观地反映出这是遍历着一层的元素
List<Integer> level=new ArrayList<>();
for(int i=0;i<size;i++){TreeNode node=queue.poll();//queue 须要是 Queue 类型, 想一想为什么不能用 List
level.add(node.val);
if(ndoe.left!=null){queue.add(node.left);
}
if(node.right!=null){queue.add(node.right);
}
}
res.add(level); // 这里 res 是内部定义的变量
}
值得一提的是, 如果返回的 int[] 类型, 那么就能够应用随同类
Arrays.toArray(new int[list.size()]);