int size():获取队列长度;
boolean add(E)/boolean offer(E):添加元素到队尾;
E remove()/E poll():获取队首元素并从队列中删除;
E element()/E peek():获取队首元素但并不从队列中删除。
class Solution {
public int[] levelOrder(TreeNode root) {
if(root==null){
return new int[0];
}
Queue<TreeNode> queue = new LinkedList<>(){{ add(root); }};
ArrayList<Integer> ans = new ArrayList<>();
while(!queue.isEmpty()){
TreeNode node=queue.poll();
ans.add(node.val);
if(node.left!=null) queue.add(node.left);
if(node.right!=null) queue.add(node.right);
}
int []res=new int[ans.size()];
for(int i=0;i<ans.size();i++){
res[i]=ans.get(i);
}
return res;
}
}
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
Queue<TreeNode> queue =new LinkedList<TreeNode>();
List<List<Integer>> list=new ArrayList<List<Integer>>();
if(root==null){
return list;
}
queue.add(root);
int k=0;
while(!queue.isEmpty()){
int len=queue.size();
List<Integer>res=new ArrayList<Integer>();
for(int i=0;i<len;i++){
TreeNode node=queue.poll();
res.add(node.val);
if(node.left!=null) queue.add(node.left);
if(node.right!=null) queue.add(node.right);
}
if(k%2==0){
list.add(res);
}
else{
List<Integer>ans=new ArrayList<Integer>();
int i,j=res.size()-1;
for(i=0;i<res.size();i++){
ans.add(res.get(j--));
}
list.add(ans);
}
k++;
}
return list;
}
}