借用辅助队列保存

Deque<TreeNode> queue = new ArrayDeque<>();
		queue.offer(root);
        while(!queue.isEmpty()){
            int size = queue.size(); // 记录当前层的元素个数
            for(int i=0;i<size;i++){ // 将当前层的元素全部取出
                TreeNode node = queue.poll();
                list.add(node.val);
                if(node.left != null){
                    queue.offer(node.left);
                }
                if(node.right != null){
                    queue.offer(node.right);
                }
            }
            res.add(new ArrayList<>(list));
            list.clear();
        }