思路:BFS,记录当前层的大小,然后new一个list并且for循环插入,用一个标记变量记录当前是奇数层还是偶数层
    1.vector没有push_front(),list才有
    vector类似于数组,而数组是没法直接在原来的内存空间前面再插入一块新的空间用于存储新的元素,而list则支持这个操作,list相当于链表,链表通过指针指向不同的内存空间并连接在一起,可以实现这种操作

    1. vector<vector<int> > Print(TreeNode* pRoot) {
    2. vector<vector<int>> ans;
    3. if(!pRoot)return ans;
    4. queue<TreeNode*> q;
    5. bool isOdd = true;
    6. int len = 0;
    7. TreeNode* fr;
    8. q.push(pRoot);
    9. while(!q.empty()){
    10. len = q.size();
    11. vector<int> list(len, 0);
    12. for(int i = 0;i < len;i++){
    13. fr = q.front();
    14. if(isOdd)list[i] = fr->val;
    15. else list[len- i - 1] = fr->val;
    16. if(fr->left)q.push(fr->left);
    17. if(fr->right)q.push(fr->right);
    18. q.pop();
    19. }
    20. if(!list.empty())ans.push_back(list);
    21. isOdd = !isOdd;
    22. }
    23. return ans;
    24. }