二叉树的层序遍历
1.函数写好后,首先根据返回值进行return2.vec一旦设立,则可以在小循环后将收获vec的代码写好,以防忘记。
·
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的代码写好,以防忘记
更多推荐
所有评论(0)