【手把手带你刷好题】—— 51.二叉树的层序遍历 II(BFS)
【摘要】
【前言】
今天是刷题打卡第51天!
加油鸭伙伴们。
原题:二叉树的层序遍历 II (BFS)
原题链接:力扣
题目描述:
示例:
思路:
大家先看一下层序遍历这篇博文,直接将最后存放到二维数组中的数据反转即可。
【手把手带你刷好题...
【前言】
今天是刷题打卡第51天!
加油鸭伙伴们。
原题:二叉树的层序遍历 II (BFS)
原题链接:力扣
题目描述:
示例:
思路:
大家先看一下层序遍历这篇博文,直接将最后存放到二维数组中的数据反转即可。
代码执行:
-
/**
-
* Definition for a binary tree node.
-
* struct TreeNode {
-
* int val;
-
* TreeNode *left;
-
* TreeNode *right;
-
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
-
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
-
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
-
* };
-
*/
-
class Solution {
-
public:
-
vector<vector<int>> levelOrderBottom(TreeNode* root) {
-
//定义一个队列
-
queue<TreeNode*>q;
-
//定义一个二维数组用于返回结果
-
vector<vector<int> >ans;
-
//先将根节点入队
-
if(root)
-
q.push(root);
-
while(!q.empty())
-
{
-
//定义一个一维数组用于存放每一层节点的值
-
vector<int>temp;
-
int n = q.size();//队列的长度
-
for(int i = 0; i < n; i++)
-
{
-
//访问队首元素
-
TreeNode* t = q.front();
-
//队首元素出队
-
q.pop();
-
//将队首元素的值存放到一维数组中
-
temp.push_back(t->val);
-
//访问左子树
-
if(t->left)
-
q.push(t->left);
-
//访问右子树
-
if(t->right)
-
q.push(t->right);
-
}
-
ans.push_back(temp);
-
}
-
reverse(ans.begin(), ans.end());//反转二维数组中的结果
-
return ans;
-
}
-
};
结语
今天是刷题打卡第51天!
加油吧少年。
文章来源: bit-runout.blog.csdn.net,作者:安然无虞,版权归原作者所有,如需转载,请联系作者。
原文链接:bit-runout.blog.csdn.net/article/details/121869790
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)