问题描述:
解题思路:
二叉树层序遍历采用队列。
实现:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>>all = new ArrayList<List<Integer>>();
if(root == null){
return all;
}
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.offer(root);
while(!queue.isEmpty()){
List<Integer>res = new ArrayList<Integer>();
int n = queue.size();
for(int i = 0;i<n;i++){
TreeNode node = queue.poll();
res.add(node.val);
if(node.left!=null){
queue.offer(node.left);
}
if(node.right!=null){
queue.offer(node.right);
}
}
all.add(res);
}
return all;
}
}