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

英文网站建设详细方案百一度一下你就知道

英文网站建设详细方案,百一度一下你就知道,用html编写淘宝网站怎么做,开公司的基本条件前言: 简单记录一下自己学习算法的历程,主要根据左老师自己的视频课进行,由于大部分课程涉及题目较多,所以分文章进行记录。 本文将简单记录一下二叉树的层序遍历和 Z 形层次遍历。 参考视频: 算法讲解036【必备】…

前言:

简单记录一下自己学习算法的历程,主要根据左老师自己的视频课进行,由于大部分课程涉及题目较多,所以分文章进行记录。

本文将简单记录一下二叉树的层序遍历和 形层次遍历。

参考视频:

算法讲解036【必备】二叉树高频题目-上-不含树型dp

相关题目:

力扣--102. 二叉树的层序遍历
力扣--103. 二叉树的锯齿形层序遍历

关于层序遍历的学习:

重点在于 队列 的使用,和如何进行分层处理。整个算法思路同于BFS(宽度优先搜索)。我们每次只遍历当前队列长度次,确保只处理一层的数据。处理的过程中,弹出结点、加入子结点。当然也可以先处理当前层的数据,再加入新结点。队列或使用封装好的库,或直接用数组进行模拟。整体相对简单,不过多赘述。

题目解答:

1.力扣--102.二叉树的层序遍历
代码示例:
/*** 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 {
private:static constexpr int N = 2001;vector<TreeNode*> queue;int size;
public:Solution() : queue(N), size(0) {}vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> ans;int l = 0, r = 1;if(root == nullptr){return ans;}queue[0] = root;size = 1;while(size != 0){int times = size;vector<int> temp;for(int i = 0; i < times; i++){TreeNode* cur = queue[l++];size--;temp.push_back(cur->val);if(cur->left != nullptr){queue[r++] = cur->left;size++;}if(cur->right != nullptr){queue[r++] = cur->right;size++;}}ans.push_back(temp);}return ans;}
};
2.力扣--103.二叉树的锯齿形层序遍历
解题思路:

遍历层时,用reverse变量控制方向。循环时先处理同层,再添加下一层。最后更改reverse即可。

代码示例:
/*** 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 {
private:static constexpr int N = 2001;vector<TreeNode*> queue;int size;
public:Solution() : queue(N), size(0) {}vector<vector<int>> zigzagLevelOrder(TreeNode* root) {vector<vector<int>> ans;if(root == nullptr){return ans;}int l = 0, r = 1;size = 1;queue[0] = root;bool reverse = false;//false -> 从左向右//true  -> 从右向左while(size != 0){vector<int> temp;int times = size;//先处理当前层,得到对应数组for(int i = reverse ? r - 1 : l, j = reverse ? -1 : 1, k = 0; k < times; i += j, k++){//i 表示需要遍历的起始位置下标//j 表示增量,是向左还是向右//k 用于控制循环次数TreeNode* cur = queue[i];temp.push_back(cur->val);}ans.push_back(temp);//构建下一层for(int i = 0; i < times; i++){TreeNode* cur = queue[l++];size--;if(cur->left != nullptr){queue[r++] = cur->left;size++;}if(cur->right != nullptr){queue[r++] = cur->right;size++;}}//记得更改方向reverse = !reverse;}return ans;}
};

最后,文章主要用于个人记录,如有错误还望指出和海涵,感谢阅读 ^_^

http://www.dtcms.com/wzjs/482384.html

相关文章:

  • 吉安哪里做网站广告平台推广渠道
  • 建设工程项目报建网站2022年每日新闻摘抄10一30字
  • 阿里云 网站备案百度应用宝
  • 美食攻略网站建设课程设计公众号软文是什么意思
  • ps做网站设计稿全网推广怎么做
  • 网站ppt怎么做如何用网站模板建站
  • 做网站蓝色和什么颜色seo优化是怎么优化的
  • 营销型企业网站建设价格免费入驻的卖货平台
  • 政府网站建设计划吴江网站制作
  • 姓氏网站建设的意见和建议手机优化大师哪个好
  • 完成网站建设的心得体会北京网站seo公司
  • 做司考题的网站建站流程
  • 怎么将自己做的网站上线大亚湾发布
  • 如何找外包网站来做网站排名推广推荐
  • 找个人做网站的网站推广的方式
  • 网站建设SEO优化哪家好竞价托管开户
  • 北京住房和城乡建设委员会网站6百度收录需要多久
  • 园林景观设计公司利润而的跟地seo排名点击软件
  • 广东门户网站建设百度app安装下载
  • 有没有网站可以做试卷百度识图网页版在线使用
  • 东莞网站建设招聘网站怎么收录到百度
  • 淘宝客做网站可行么电子商务seo名词解释
  • 石排仿做网站最火的网络推广平台
  • 邢台网站制作地方公司推广
  • 网站建设功能清单百度竞价推广收费标准
  • 广州做网站平台的企业抖音关键词用户搜索排名靠前
  • 男女做的的真实视频网站长沙正规竞价优化服务
  • 搜索优化网络推广漳州seo网站快速排名
  • java免费入门网站属于免费的网络营销方式
  • 隐藏网站的wordpress属性百度网盘电脑版官网