/** * 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(); } };
107. Binary Tree Level Order Traversal II
最新推荐文章于 2021-08-10 13:02:56 发布