package com.interview.books.ccinterview;
import com.interview.leetcode.utils.TreeNode;
import com.interview.utils.ConsoleWriter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
/**
* Created_By: stefanie
* Date: 14-12-13
* Time: 下午12:38
*/
public class CC9_BinaryTreeLevelList {
public List<List<Integer>> levelList(TreeNode root){
List<List<Integer>> layers = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<>();
if(root != null) queue.offer(root);
while(!queue.isEmpty()){
int layerSize = queue.size();
List<Integer> cur = new ArrayList<>();
for(int i = 0; i < layerSize; i++){
TreeNode node = queue.poll();
cur.add(node.val);
if(node.left != null) queue.add(node.left);
if(node.right != null) queue.add(node.right);
}
layers.add(cur);
}
return layers;
}
public static void main(String[] args){
CC9_BinaryTreeLevelList retriever = new CC9_BinaryTreeLevelList();
TreeNode root = TreeNode.sampleBST();
List<List<Integer>> layers = retriever.levelList(root);
ConsoleWriter.print(layers);
}
}