题目描述
问题解析
本道题使用广度优先遍历的层序遍历,使用迭代法进行遍历(根据层序遍历的特点使用队列进行存储)
本题与上面一题的不同在于输出的是二维链表,即使用上一个方法遍历的结果,引入一层while循环进行遍历存储每一层的值
代码实例
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> list = new ArrayList<>();
if(root == null){
return null;
}
Queue<TreeNode> que = new LinkedList<TreeNode>();
que.offer(root);
while(!que.isEmpty()){
List<Integer> itemlist = new ArrayList<>();
TreeNode tempnode = queue.poll();
int len = que.size();
while(len > 0){
if(tempnode.left != null){
que.offer(tempnode.left);
}
if(tempnode.right != null){
que.offer(tempnode.right);
}
len--;
}
list.add(itemlist);
}
return list;
}
}