欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 力扣HOT100之二叉树:104. 二叉树的最大深度

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

2025/5/13 22:22:58 来源:https://blog.csdn.net/weixin_52151595/article/details/147903465  浏览:    关键词:力扣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();}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词