package leetcode;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class demo_102 {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> list=new ArrayList<List<Integer>>();
if(root==null) {return list;}
Queue<TreeNode> queue=new LinkedList<TreeNode>();
TreeNode node;
queue.add(root);
//记录每一层开始和结束的位置
int begin=1,end=1;
while(!queue.isEmpty()) {
//保留结束的位置
int oldend=end;
List<Integer> ll=new ArrayList<Integer>();
while(begin<=oldend) {
node=queue.poll();
ll.add(node.val);
if(node.left!=null) {
queue.add(node.left);
end=end+1;
}
if(node.right!=null) {
queue.add(node.right);
end=end+1;
}
begin=begin+1;
}
list.add(ll);
}
return list;
}
}