【手把手带你刷好题】—— 48.二叉树的层序遍历(BFS)
【摘要】
【前言】
今天是刷题打卡第48天!
早成者未必有成,晚达者未必不达。一起都还来得及,加油哦。
原题: 二叉树的层序遍历(BFS)
原题链接:力扣
示例:
代码执行:
class Solution {public: /** * * @param ...
【前言】
今天是刷题打卡第48天!
早成者未必有成,晚达者未必不达。一起都还来得及,加油哦。
原题: 二叉树的层序遍历(BFS)
原题链接:力扣
示例:
代码执行:
-
class Solution {
-
public:
-
/**
-
*
-
* @param root TreeNode*
-
* @return int整型vector<vector<>>
-
*/
-
vector<vector<int> > levelOrder(TreeNode* root) {
-
// write code here
-
queue<TreeNode*>q;//定义一个队列
-
if(root)
-
q.push(root);
-
vector<vector<int> >ans;//定义一个二维数组用于存放遍历结果
-
while(!q.empty()){//队列为空时停下来
-
int n = q.size();//注意哦,n不能放在循环外边,队列中的元素是在变化的
-
vector<int>tmp;//定义一维数组用于存放每一层的节点(注意一维数组定义的位置)
-
for(int i = 0;i < n;i++){
-
TreeNode* t = q.front();//访问队首元素
-
q.pop();//队首元素出队
-
tmp.push_back(t->val);//将队首元素的值存放到该层的一维数组中
-
if(t->left)//左子节点入队
-
q.push(t->left);
-
if(t->right)//右子节点入队
-
q.push(t->right);
-
}
-
ans.push_back(tmp);//将第一层的一维数组存放二维数组中
-
}
-
return ans;
-
}
-
};
结语
今天是刷题打卡第48天!
加油吧少年。
文章来源: bit-runout.blog.csdn.net,作者:安然无虞,版权归原作者所有,如需转载,请联系作者。
原文链接:bit-runout.blog.csdn.net/article/details/121716957
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)