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

响应式网站建设需要注意什么网站内容描述

响应式网站建设需要注意什么,网站内容描述,数据分析网页,郑州网站制作-中国互联二叉树的层序遍历相当于图论的广度优先搜索#xff0c;用队列来实现 #xff08;二叉树的递归遍历相当于图论的深度优先搜索#xff09; 102.二叉树的层序遍历 给你二叉树的根节点 root #xff0c;返回其节点值的 层序遍历 。 #xff08;即逐层地#xff0c;从左到右…二叉树的层序遍历相当于图论的广度优先搜索用队列来实现 二叉树的递归遍历相当于图论的深度优先搜索 102.二叉树的层序遍历 给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点。 示例 1 输入root [3,9,20,null,null,15,7] 输出[[3],[9,20],[15,7]] 思路解析 层序遍历的核心思想 层序遍历或广度优先搜索BFS是通过逐层访问节点来遍历树。通常利用 队列queue 数据结构完成每次处理一层的所有节点然后将下一层的节点加入队列。 算法步骤 特殊情况处理 如果树为空root nullptr直接返回空的二维数组。初始化队列 创建一个队列 que将根节点 root 入队。逐层遍历 每次记录当前队列的大小size代表当前层的节点数量。遍历这一层的节点依次从队列中取出节点存入当前层的结果数组vec。如果节点有左子节点或右子节点将其加入队列作为下一层要访问的节点。记录结果 将当前层的结果数组 vec 添加到最终结果数组 result 中。重复上述过程直到队列为空。返回结果 最终返回存储每一层节点值的二维数组 result。 que 是一个存储 TreeNode* 类型的队列 /*** 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) {}* };*/ #include vector #include queue using namespace std;class Solution { public:vectorvectorint levelOrder(TreeNode* root) {vectorvectorint result; // 用于存储最终的层序遍历结果if (root nullptr) return result; // 如果根节点为空返回空的结果queueTreeNode* que; // 队列用于辅助层序遍历que.push(root); // 将根节点加入队列while (!que.empty()) {int size que.size(); // 当前层的节点数量vectorint vec; // 用于存储当前层的节点值for (int i 0; i size; i) {TreeNode* node que.front(); // 取出队首节点que.pop(); // 弹出队首节点vec.push_back(node-val); // 存储当前节点的值// 将左子节点加入队列if (node-left) {que.push(node-left);}// 将右子节点加入队列if (node-right) {que.push(node-right);}}result.push_back(vec); // 将当前层的节点值存入结果中}return result; // 返回最终结果} };107.二叉树的层序遍历|| 给你二叉树的根节点 root 返回其节点值 自底向上的层序遍历 。 即按从叶子节点所在层到根节点所在的层逐层从左向右遍历 示例 1 输入root [3,9,20,null,null,15,7] 输出[[15,7],[9,20],[3]]思路我们可以先进行标准的层序遍历然后将结果逆序。 只需在return result前多加一个 reverse(result.begin(), result.end()); 199.二叉树的右视图 给定一个二叉树的 根节点 root想象自己站在它的右侧按照从顶部到底部的顺序返回从右侧所能看到的节点值。 示例 1 输入root [1,2,3,null,5,null,4] 输出[1,3,4] 解释 思路就是其他的元素都不存入只存入一行中最右边的那个元素 if (i size - 1) {result.push_back(node-val);} 所以最后的result就不是二维数组而是一维数组来存入元素 #include vector #include queue using namespace std;class Solution { public:vectorint rightSideView(TreeNode* root) {vectorint result; // 用于存储右视图的节点值if (root nullptr) return result; // 如果树为空直接返回空的结果queueTreeNode* que; // 队列用于辅助层序遍历que.push(root); // 根节点入队while (!que.empty()) {int size que.size(); // 当前层的节点数量for (int i 0; i size; i) {TreeNode* node que.front(); // 获取队首节点que.pop(); // 弹出队首节点// 如果是当前层的最后一个节点存入结果if (i size - 1) {result.push_back(node-val);}// 左子节点入队if (node-left) {que.push(node-left);}// 右子节点入队if (node-right) {que.push(node-right);}}}return result; // 返回右视图结果} };637.二叉树的层平均值 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1 输入root [3,9,20,null,null,15,7] 输出[3.00000,14.50000,11.00000] 解释第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。 因此返回 [3, 14.5, 11] 。 只需要增加计算每层平均数的功能即可 /*** 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:vectordouble averageOfLevels(TreeNode* root) {vectordouble result; // 用于存储最终的层序遍历结果if (root nullptr) return result; // 如果根节点为空返回空的结果double arg0;queueTreeNode* que; // 队列用于辅助层序遍历que.push(root); // 将根节点加入队列while (!que.empty()) {int size que.size(); // 当前层的节点数量vectorint vec; // 用于存储当前层的节点值for (int i 0; i size; i) {TreeNode* node que.front(); // 取出队首节点que.pop(); // 弹出队首节点argnode-val;// 将左子节点加入队列if (node-left) {que.push(node-left);}// 将右子节点加入队列if (node-right) {que.push(node-right);}}result.push_back(arg/size); // 将当前层的节点值存入结果中arg0;}return result; // 返回最终结果 } }; 429.N叉树的层序遍历(opens new window)515.在每个树行中找最大值(opens new window)116.填充每个节点的下一个右侧节点指针(opens new window)117.填充每个节点的下一个右侧节点指针II(opens new window)104.二叉树的最大深度(opens new window)111.二叉树的最小深度 还有几道题下次再写
http://www.w-s-a.com/news/284468/

相关文章:

  • 温州网站建设维护怎么做好网站开发、设计
  • 佛山 做网站公司有哪些网站排名忽然不见了
  • 广告网站建设最专业东莞大朗网站设计
  • 网站做流量的论坛贴吧分销商城系统源码
  • 新手建立网站的步骤网站建设费怎么入分录
  • 哪里建网站性价比高做网站赚取广告费
  • 邢台集团网站建设价格微信怎么做捐钱的网站
  • 做网站费用需要分摊吗装修公司一般多少钱一平方
  • 公司主页的网站格式wordpress自动推送给百度
  • 网站建设辶金手指排名十二wordpress 当数据库
  • 无锡手机网站建设服务苏州展厅设计企业
  • 无锡网站制作需要多少钱北京二次感染最新消息
  • 网站开发视频播放无画面杭州房产信息网官网
  • 网站开发 改进如何创建公众号平台
  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好