【手把手带你刷好题】—— 48.二叉树的层序遍历(BFS)

举报
安然无虞 发表于 2022/05/27 01:15:45 2022/05/27
【摘要】 【前言】 今天是刷题打卡第48天! 早成者未必有成,晚达者未必不达。一起都还来得及,加油哦。 原题: 二叉树的层序遍历(BFS) 原题链接:力扣   示例: 代码执行: class Solution {public: /** * * @param ...

【前言】

今天是刷题打卡第48天!

早成者未必有成,晚达者未必不达。一起都还来得及,加油哦。

原题: 二叉树的层序遍历(BFS)

原题链接:力扣

 

示例:

代码执行:


  
  1. class Solution {
  2. public:
  3. /**
  4. *
  5. * @param root TreeNode*
  6. * @return int整型vector<vector<>>
  7. */
  8. vector<vector<int> > levelOrder(TreeNode* root) {
  9. // write code here
  10. queue<TreeNode*>q;//定义一个队列
  11. if(root)
  12. q.push(root);
  13. vector<vector<int> >ans;//定义一个二维数组用于存放遍历结果
  14. while(!q.empty()){//队列为空时停下来
  15. int n = q.size();//注意哦,n不能放在循环外边,队列中的元素是在变化的
  16. vector<int>tmp;//定义一维数组用于存放每一层的节点(注意一维数组定义的位置)
  17. for(int i = 0;i < n;i++){
  18. TreeNode* t = q.front();//访问队首元素
  19. q.pop();//队首元素出队
  20. tmp.push_back(t->val);//将队首元素的值存放到该层的一维数组中
  21. if(t->left)//左子节点入队
  22. q.push(t->left);
  23. if(t->right)//右子节点入队
  24. q.push(t->right);
  25. }
  26. ans.push_back(tmp);//将第一层的一维数组存放二维数组中
  27. }
  28. return ans;
  29. }
  30. };

结语

今天是刷题打卡第48天!

加油吧少年。

 

文章来源: bit-runout.blog.csdn.net,作者:安然无虞,版权归原作者所有,如需转载,请联系作者。

原文链接:bit-runout.blog.csdn.net/article/details/121716957

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。