leetcode系列


一、核心操作

1.队列弹出当前节点内容
2.当前节点的左右子节点进入队列

提示:小白个人理解,如有错误敬请谅解!

二、外层配合操作

1.大循环:队列中不为空时,就一直进行下去
2.小循环:对二叉树的每一层的每一个节点都进行核心操作,每一层为一个循环

1.初始化

代码如下:

 vector<vector<int>> res;
 if(!root)return res;
 queue<TreeNode*> que;
 TreeNode* cur;
 que.push(root);

2.核心模式代码

代码如下:

class Solution{
public:
    vector<vector<int>> levelOrder(TreeNode* root){
        vector<vector<int>> res;
        if(!root)return res;
        queue<TreeNode*> que;
        TreeNode* cur;
        que.push(root);

        while (!que.empty())
        {
            vector<int> vec;
            int size=que.size();
            for(int i=0;i<size;i++)
            {
                cur=que.front();
                que.pop();
                vec.push_back(cur->val);
                if(cur->left)que.push(cur->left);
                if(cur->right)que.push(cur->right);
            }
            res.push_back(vec);
        }
        return res;
    }
};

总结

1.函数写好后,首先根据返回值进行return
2.vec一旦设立,则可以在小循环后将收获vec的代码写好,以防忘记

Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐