当前位置: 首页> 房产> 市场 > 对网页设计作品的意见_页面设计重点_东莞网络优化哪家好_百度怎么收录网站

对网页设计作品的意见_页面设计重点_东莞网络优化哪家好_百度怎么收录网站

时间:2025/7/16 16:49:00来源:https://blog.csdn.net/rigidwill/article/details/146180054 浏览次数:0次
对网页设计作品的意见_页面设计重点_东莞网络优化哪家好_百度怎么收录网站

题目

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

输入:root = [1]
输出:[[1]]

示例 3:

输入:root = []
输出:[]

分析

二叉树的层序遍历可以借助队列来实现。层序遍历的核心思路是从根节点开始,依次访问每一层的节点,并且从左到右逐个访问。

广度优先搜索

首先判断根节点是否为空,若为空则直接返回空的结果。初始化一个队列,将根节点加入队列。

当队列不为空时,进行以下操作:

  1. 记录当前队列的大小,这个大小就是当前层的节点数量
  2. 遍历当前层的所有节点,将节点的值存入当前层的结果数组中,同时将节点的左右子节点(如果存在)加入队列
  3. 将当前层的结果数组加入最终结果

时间复杂度:O(n), n 为二叉树节点的个数

空间复杂度:O(m),m 是二叉树中节点数最多的那一层的节点数

class Solution {
public:std::vector<std::vector<int>> levelOrder(TreeNode* root) {std::vector<std::vector<int>> result;if (root == nullptr) {return result;}std::queue<TreeNode*> nodeQueue;nodeQueue.push(root);while (!nodeQueue.empty()) {int levelSize = nodeQueue.size();std::vector<int> currentLevel;for (int i = 0; i < levelSize; ++i) {TreeNode* currentNode = nodeQueue.front();nodeQueue.pop();currentLevel.push_back(currentNode->val);if (currentNode->left) {nodeQueue.push(currentNode->left);}if (currentNode->right) {nodeQueue.push(currentNode->right);}}result.push_back(currentLevel);}return result;}
};
关键字:对网页设计作品的意见_页面设计重点_东莞网络优化哪家好_百度怎么收录网站

版权声明:

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

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

责任编辑: