class Solution {
public:
        // 考察知识点: 二叉树的层次遍历    队列的先入先出性质
        vector<vector<int> > Print(TreeNode* pRoot)
        {
            queue<TreeNode*> q;
            vector<vector<int>> vv;
            if(pRoot == NULL)  return vv;
            q.push(pRoot);
            while(!q.empty())
            {
                int n = q.size(); // 每一层结点的个数
                vector<int> v;
                for(int i=0; i<n; i++) 
                {
                    TreeNode* node = q.front();
                    q.pop();
                    v.push_back(node->val);  // 用于存储每一层的结点的val
                    cout << node->val << " ";
                    if(node->left != NULL)
                    {
                        q.push(node->left);   
                    }
                    if(node->right != NULL)
                    {
                        q.push(node->right);
                    }
                }
                cout << endl;
                vv.push_back(v);
            }
            return vv;

        }

};