Java教程

2021-10-11

本文主要是介绍2021-10-11,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

力扣Hot100题单个人计划c++版(一)
力扣Hot100题单个人计划c++版(二)
力扣Hot100题单个人计划c++版(三)


刷题链接:力扣Hot 100
每日一题,每日一更,白板手写。

力扣Hot 100

  • 41.二叉树的层序遍历


41.二叉树的层序遍历

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;
    }
};
这篇关于2021-10-11的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!