力扣Hot100题单个人计划c++版(一)
力扣Hot100题单个人计划c++版(二)
力扣Hot100题单个人计划c++版(三)
刷题链接:力扣Hot 100
每日一题,每日一更,白板手写。
10.11打卡
层序遍历很基础的算法了,按照每层返回一个vector的话,一开始想到用两个队列循环取每一层和下一层,然后在转成vector,当然题解更巧妙的做法是记住每层的大小即可。
class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { if(root==nullptr)return {}; vector<vector<int>> ans; queue<TreeNode*> q; q.push(root); int cnt=-1; while(!q.empty()){ int clen=q.size(); ++cnt; ans.push_back(vector<int>()); while(clen--){ auto pos=q.front();q.pop(); ans[cnt].push_back(pos->val); if(pos->left)q.push(pos->left); if(pos->right)q.push(pos->right); } } return ans; } };