当前位置: 首页 > news >正文

二叉树的层序遍历-力扣

本题是二叉树的层序遍历,通过一个队列来控制遍历的节点,二叉树每层的节点和上一层入队的节点个数是相同的,根据这一点编写循环条件。

/*** 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>> levelOrder(TreeNode* root) {vector<vector<int>> result;queue<TreeNode*> que;if(root != nullptr){que.push(root);}while(!que.empty()){int size = que.size();vector<int> vec;for(int i = 0; i < size; i++){TreeNode* cur = que.front();que.pop();vec.push_back(cur->val);if(cur->left != nullptr){que.push(cur->left);}if(cur->right != nullptr){que.push(cur->right);}                }result.push_back(vec);}return result;}
};

使用递归的写法:层序遍历也是正向进行遍历,因此在到达新的一层是,首先为返回数组result添加一个容纳这一层元素的空数组,之后便可以向这个空数组添加本层的元素,添加完后,前往这个节点的左右子节点。

class Solution {
public:void order(TreeNode* cur, vector<vector<int>>& result, int depth){if(cur == nullptr){return;}if(result.size() == depth){result.push_back(vector<int>());}result[depth].push_back(cur->val);order(cur->left, result, depth + 1);order(cur->right, result, depth + 1);}vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> result;int depth = 0;order(root, result, depth);return result;}
};
http://www.lryc.cn/news/368486.html

相关文章:

  • N32G45XVL-STB之移植LVGL(lvgl-8.2.0)
  • 【设计模式】创建型设计模式之 原型模式
  • 【类型商店】字符字符串(下)
  • 『 Linux 』内存管理与文件系统
  • 线性代数|机器学习-P8矩阵低秩近似eckart-young
  • 平面设计神器CorelDRAW2021精简版,你值得拥有!
  • kafka是什么?
  • ABC351
  • base上海,数据科学,数据挖掘,数据分析等岗位求收留
  • IC元器件
  • SQL159 每个创作者每月的涨粉率及截止当前的总粉丝量
  • Linux安装MySQL教程【带图文命令巨详细】
  • 外部排序快速入门详解:基本原理,败者树,置换-选择排序,最佳归并树
  • 人工智能和物联网如何结合
  • 【JAVASE】JAVA应用案例(下)
  • 【面试干货】 B 树与 B+ 树的区别
  • Socket编程权威指南(四)彻底解密 Epoll 原理
  • Windows开始ssh服务+密钥登录+默认启用powershell
  • 实体商铺私域流量打造策略:从引流到转化的全链路解析
  • 实战 | 通过微调SegFormer改进车道检测效果(数据集 + 源码)
  • 翻译《The Old New Thing》- Why do messages posted by PostThreadMessage disappear?
  • 【深度学习】—— 神经网络介绍
  • python-数字黑洞
  • SpringCloud 负载均衡 spring-cloud-starter-loadbalancer
  • 牛客周赛-46
  • 多模态vlm综述:An Introduction to Vision-Language Modeling 论文解读
  • 28.找零
  • [方法] 《鸣潮》/《原神》呼出与锁定光标的功能细节
  • 计算机网络-NAT配置与ACL
  • 哈尔滨三级等保测评需要测哪些设备?