谏言:

1:精致的人,往往会追求精致的代码;

2:一入递归深似海,从此offer是路人,能用迭代的就不要用递归;

public class Solution {

//入口
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
    return func(root);//调用
}
//遍历
public ArrayList<ArrayList<Integer>> func(TreeNode root){

	if(root==null) return result;//边界
    Queue<TreeNode> queue = new LinkedList<>();
    queue.offer(root);
    
    while(!queue.isEmpty()){
    
        ArrayList<Integer> list = new ArrayList<>();
        int size = queue.size();//本次长度
        
        while(size-->0){
            TreeNode node = queue.poll();//剔除
            list.add(node.val);//加入小list
            if(node.left!=null) queue.offer(node.left);//让外循环继续
            if(node.right!=null) queue.offer(node.right);//让外循环继续
        }
        
        result.add(list);//加入大list
    }
    
    return result;//完成
}
//全局变量
ArrayList<ArrayList<Integer>> result = new ArrayList<>();

}