/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/
class Solution {//层序遍历
public:
        vector<vector<int> > Print(TreeNode* pRoot) {
            vector<vector<int>> res;
            if(!pRoot) return res;
            queue<TreeNode*> p;
            p.push(pRoot);
            while(!p.empty()){
                int i=0,n=p.size();
                vector<int> val;
                while(i++<n){
                    TreeNode* q=p.front();
                    p.pop();
                    val.push_back(q->val);
                    if(q->left) p.push(q->left);
                    if(q->right) p.push(q->right);
                }
                res.push_back(val);
            }
            return res;
        
        }
    
};