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

力扣HOT100之二叉树:104. 二叉树的最大深度


这道题没啥好说的,就是简单的层序遍历,用一个二维向量存储整个二叉树的元素,二维向量中的每一个一维向量分别存储每一层的元素,我们用一个二重while循环来实现元素的添加,外层的while循环来控制添加一维向量,每循环一次就将一层的元素添加到向量中,而内层while循环则将一层的所有元素都添加到一个临时的一维向量中,内层循环结束后再及时将这个临时向量添加到二维向量中。
下面是代码。

/*** 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:int maxDepth(TreeNode* root) {//这道题用层序遍历,用一个二维向量来存储二叉树的值//所以二维向量中的每一个一维向量存储的是一层的元素//我们只需要统计出二维向量中有多少个一维向量即可vector<vector<int>> result;queue<TreeNode*> My_Queue;if(root) My_Queue.push(root);   //若树不为空才加入队列while(!My_Queue.empty()){vector<int> temp;int size = My_Queue.size();while(size > 0){TreeNode* node = My_Queue.front();My_Queue.pop();size--;temp.emplace_back(node -> val);if(node -> left) My_Queue.push(node -> left);if(node -> right) My_Queue.push(node -> right);}result.emplace_back(temp);}return result.size();}
};
http://www.xdnf.cn/news/5670.html

相关文章:

  • 软件安全之内存泄漏
  • 构造+简单树状
  • 搜索二维矩阵 II 算法讲解
  • OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——gnutls
  • AD开启交叉选择功能,只选中器件,不选中网络、焊盘
  • PostgreSQL 序列(Sequence) 与 Oracle 序列对比
  • 聊一聊常见的超时问题:timeout
  • 理解CNN模型:从原理到应用
  • Linux系列(3)----用户和用户组管理、系统管理
  • 大模型核心基础简介
  • JAVA笔记6——异常
  • 【我的创作纪念日】512
  • Error from server (NotFound) namespaces kubesphere-system not found报错解决方案
  • 解锁仓储升级:Canopen到Profinet网关的革新应用!
  • 连续抵消解码器--Successive Cancellation decoder(SC 解码器)
  • MNIST 数据并行 Data Parallel - DP
  • P4933 大师
  • ROS 2 FishBot PID控制电机代码
  • ‌中继器:网络中的“血包”与“加时器”‌
  • 【python编程从入门到到实践】第六章 字典
  • 将PyQt5设计的程序打包成.exe文件
  • 掌握 void 类型在函数返回值中的应用
  • 企业级数据安全实践:ChatBI的多源异构治理与OLAP查询加速方案
  • Java中的JDK7和JDK8时间类详解
  • Zotero文献管理
  • Nginx重写功能
  • 使用Python调用ComfyUI API实现图像生成
  • Java+MySQL学生管理系统
  • 【github分享】开发者学习路线图
  • DBdoctor:一款企业级数据库性能诊断工具