107. Binary Tree Level Order Traversal II

来源:互联网 发布:职称计算机模拟软件 编辑:程序博客网 时间:2024/05/22 18:23
/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector<vector<int>> levelOrderBottom(TreeNode* root) {        vector<vector<int>> res;        if(!root){            return res;        }        queue<TreeNode *> qu;        //queue<TreeNode *> af;        qu.push(root);        TreeNode * temp;        //bool foot = false;        TreeNode* p = root;        //标记是第几层        int i = 0,j=0;        //记录每行元素个数        int count = 0;         while( !qu.empty()){            vector<int> onefloor;            count = qu.size();            j = 0;            while(j < count){               temp = qu.front();               qu.pop();               j++;               onefloor.push_back(temp->val);               //res[i].push_back(temp->val);               if(temp->left != NULL){                   qu.push(temp->left);               }                if(temp->right != NULL){                   qu.push(temp->right);               }            }            i++;            //头插法逆序,这里没想到,reverse不能应用于vector<vector>            res.insert(res.begin(),onefloor);        }        return res;       // return res.begin();    }};


 
原创粉丝点击