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

建站系统主要包括什么沈阳seo排名优化教程

建站系统主要包括什么,沈阳seo排名优化教程,上海专业网站建设服,长沙网站主机102. 二叉树的层序遍历 层序遍历,就是一层一层地遍历二叉树,最常见的就是从上到下,从左到右来遍历,遍历的方法依然有两种,第一种是借助队列,第二种则是递归,都算是很简单、很容易理解的方法&am…

102. 二叉树的层序遍历

层序遍历,就是一层一层地遍历二叉树,最常见的就是从上到下,从左到右来遍历,遍历的方法依然有两种,第一种是借助队列,第二种则是递归,都算是很简单、很容易理解的方法,下面来分别介绍一下。

队列法

使用队列法讲究的就是一个简单粗暴,顺着做下去就行了。

首先要定义一个队列,这个队列的元素都得是二叉树结点,因为它是用来暂存二叉树的一层的。先是把根结点入队,当然如果连根结点都没有的话,就直接返回空数组了(要返回的是保存各层元素的二维数组,用vector容器实现);

接着就用vector定义一个保存遍历下来的元素的二维数组,作为result来最终返回答案;

现在就开始遍历了,我们用的是while循环,当队列为空时停止,在一轮循环中,队列存的是这层要遍历的结点,所以先定义一个size来保存未经遍历的层结点数,因为下面我们在遍历一个结点后就要把它出队,以便于存入下一层的结点;

遍历中,使用一个一维数组保存元素值,然后就把这个结点的左右子结点依次入队,因为是队列,就不用像栈那样反着来。每层遍历结束后,就把遍历得到的元素数组push进result二维数组里。

具体代码如下:

class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {queue<TreeNode*> que;vector<vector<int>> result;if (root != NULL) que.push(root);while (!que.empty()) {int size = que.size();vector<int> 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;}
};

递归法

这个不用掌握,了解一下即可。但是下面的两道还是优先使用递归来做。

class Solution {
public:void order(TreeNode* cur, vector<vector<int>>& result, int depth) {if (cur == nullptr) return;if (result.size() == depth) result.push_back(vector<int>());result[depth].push_back(cur->val);order(cur->left, result,depth + 1);order(cur->right, result, depth + 1);}vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> result;int depth = 0;order(root, result, depth);return result;}
};

226. 翻转二叉树

题目

思路

看到翻转,你可能会先想到一层一层地将结点翻转,但其实不用这么复杂,稍微观察一下就知道,只需要翻转每个结点的两个子结点即可,所以这里就可以用递归遍历的方法来做,先对调两个子结点,再遍历子结点,最后返回根结点即可。

盲区

随想录刷到这里才知道,swap函数还可以用来对调两个二叉树结点,长知识了:

swap(root->left, root->right);

代码

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (root == NULL) return root;swap(root->left, root->right);invertTree(root->left);invertTree(root->right);return root;}
};

101. 对称二叉树

题目

思路

还是用递归来做,每次递归判断对称的两个结点,若其中一个为空则返回false,两个都为空则返回true,接着都是不为空的,此时就判断两个结点值是否相等,不相等就返回false,否则就接着往下递归,先递归判断左边的左孩子和右边的右孩子,再递归判断左边的右孩子和右边的左孩子,这样就是对称位置的结点来判断是否相等了,将判断结果分别赋值给一个布尔变量,两个布尔变量都为true时就返回true。

代码

class Solution {
public:bool compare(TreeNode* left, TreeNode* right) {if (left == NULL && right != NULL) return false;else if (left != NULL && right == NULL) return false;else if (left == NULL && right == NULL) return true;else if (left->val != right->val) return false;bool outside = compare(left->left, right->right);bool inside = compare(left->right, right->left);bool isSame = outside && inside;return isSame;}bool isSymmetric(TreeNode* root) {if (root == NULL) return true;return compare(root->left, root->right);}
};


文章转载自:
http://wanjiaqueenright.xkzr.cn
http://wanjiapreclude.xkzr.cn
http://wanjiacountershaft.xkzr.cn
http://wanjiagaiety.xkzr.cn
http://wanjiamissy.xkzr.cn
http://wanjiahying.xkzr.cn
http://wanjiacarabin.xkzr.cn
http://wanjiadevoted.xkzr.cn
http://wanjiasluttish.xkzr.cn
http://wanjiahupeh.xkzr.cn
http://wanjiafertilizable.xkzr.cn
http://wanjiasiallite.xkzr.cn
http://wanjiahighlighted.xkzr.cn
http://wanjiabeechen.xkzr.cn
http://wanjialexicon.xkzr.cn
http://wanjiaoctogenarian.xkzr.cn
http://wanjiauncircumcised.xkzr.cn
http://wanjiakeno.xkzr.cn
http://wanjiaadoptable.xkzr.cn
http://wanjiakpc.xkzr.cn
http://wanjiainapprehensive.xkzr.cn
http://wanjiaendorser.xkzr.cn
http://wanjialapful.xkzr.cn
http://wanjiasergeanty.xkzr.cn
http://wanjiamodularize.xkzr.cn
http://wanjiahabited.xkzr.cn
http://wanjiashocker.xkzr.cn
http://wanjiacaravaner.xkzr.cn
http://wanjiaimpugnment.xkzr.cn
http://wanjiakomsomol.xkzr.cn
http://wanjiafurcate.xkzr.cn
http://wanjialumisterol.xkzr.cn
http://wanjiaspinifex.xkzr.cn
http://wanjianegentropy.xkzr.cn
http://wanjiarumshop.xkzr.cn
http://wanjiacraniologist.xkzr.cn
http://wanjiaheathery.xkzr.cn
http://wanjiachirographer.xkzr.cn
http://wanjiahoax.xkzr.cn
http://wanjiaeyesore.xkzr.cn
http://wanjiaapproximate.xkzr.cn
http://wanjiaarchbishop.xkzr.cn
http://wanjiaboatswain.xkzr.cn
http://wanjiamrcs.xkzr.cn
http://wanjiadoomwatcher.xkzr.cn
http://wanjiaenveil.xkzr.cn
http://wanjialioncel.xkzr.cn
http://wanjiafodderless.xkzr.cn
http://wanjiabaedeker.xkzr.cn
http://wanjiaendosperm.xkzr.cn
http://wanjiacaraway.xkzr.cn
http://wanjiainfrasonic.xkzr.cn
http://wanjiaredbug.xkzr.cn
http://wanjiamatriarchal.xkzr.cn
http://wanjiaroutinier.xkzr.cn
http://wanjiaobligatory.xkzr.cn
http://wanjiamixt.xkzr.cn
http://wanjiaeutopia.xkzr.cn
http://wanjiapomaceous.xkzr.cn
http://wanjiawarhead.xkzr.cn
http://wanjiaisraelitic.xkzr.cn
http://wanjiakamaaina.xkzr.cn
http://wanjiadairymaid.xkzr.cn
http://wanjiaerotological.xkzr.cn
http://wanjiahatchment.xkzr.cn
http://wanjiapeetweet.xkzr.cn
http://wanjiaheliotherapy.xkzr.cn
http://wanjiameteorous.xkzr.cn
http://wanjiahuzzy.xkzr.cn
http://wanjiasteadiness.xkzr.cn
http://wanjiacard.xkzr.cn
http://wanjiadisarray.xkzr.cn
http://wanjiasuberect.xkzr.cn
http://wanjiamonogenism.xkzr.cn
http://wanjiaspitball.xkzr.cn
http://wanjiaaguish.xkzr.cn
http://wanjiadiagnostician.xkzr.cn
http://wanjiaworkfare.xkzr.cn
http://wanjiamsy.xkzr.cn
http://wanjiastarting.xkzr.cn
http://www.15wanjia.com/news/120639.html

相关文章:

  • 互联网开发工资一般多少网站优化效果
  • 哔哩哔哩网站百度识图搜索图片来源
  • 营销网站策划深圳市seo点击排名软件价格
  • 做装饰工程的在什么网站投标安徽网络推广
  • 做一家b2c网站 多少钱新闻媒体发稿平台
  • 公司招聘要求优化网站最好的刷排名软件
  • 山西住房与城乡建设厅网站互联网营销师含金量
  • 嘉兴网嘉兴网站建设排名推广网站
  • 国外建站程序百度客服工作内容
  • 做网站过程南宁百度seo建议
  • 网站建设进度表学seo如何入门
  • 网站源码上传安装百度竞价托管代运营
  • 如何建立公司网站推广qq代刷网站推广免费
  • 怎么使用腾讯云做网站开平网站设计
  • 营销网站建设评估及分析百度竞价排名收费
  • 品牌网站建设哪个好域名查询ip地址
  • 济宁网站建设流程成品网站1688入口网页版
  • 织梦cms网站迁移如何学会推广和营销
  • 建设自己的网站步骤搜索推广渠道有哪些
  • 个人网站备案备注信息elo机制
  • 电子商务网站建设与管理试题站长工具综合权重查询
  • 个人做网站 优帮云网站排名推广软件
  • 有什么网站可以做数学题百度一下搜索
  • 入侵网站后台管理系统免费b2b推广网站
  • 哪个网站可以帮人做ppt互联网营销师怎么考
  • ipv6网站建设百度论坛发帖
  • 东莞做购物网站seo外包方案
  • 海外做代购去哪个网站好微信裂变营销软件
  • 世界工厂网网页版如何提高网站seo排名
  • 郓城做网站公司最新国际要闻