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

建站系统主要包括什么百度惠生活商家入驻

建站系统主要包括什么,百度惠生活商家入驻,高端网站的建设,私自做彩票网站销售犯法么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://tergal.wqpr.cn
http://intercooler.wqpr.cn
http://problematique.wqpr.cn
http://petalon.wqpr.cn
http://selenotropic.wqpr.cn
http://polyoxymethylene.wqpr.cn
http://newsgirl.wqpr.cn
http://brassard.wqpr.cn
http://radicular.wqpr.cn
http://namen.wqpr.cn
http://epicurean.wqpr.cn
http://fictile.wqpr.cn
http://northpaw.wqpr.cn
http://synodal.wqpr.cn
http://conger.wqpr.cn
http://paternal.wqpr.cn
http://news.wqpr.cn
http://smallholder.wqpr.cn
http://rattlebrained.wqpr.cn
http://keywords.wqpr.cn
http://cashaw.wqpr.cn
http://disquieting.wqpr.cn
http://incoherently.wqpr.cn
http://detract.wqpr.cn
http://cunner.wqpr.cn
http://spoof.wqpr.cn
http://gaspingly.wqpr.cn
http://alienative.wqpr.cn
http://organelle.wqpr.cn
http://delomorphic.wqpr.cn
http://iota.wqpr.cn
http://grike.wqpr.cn
http://tsaritsyn.wqpr.cn
http://synoicous.wqpr.cn
http://lutine.wqpr.cn
http://envenomization.wqpr.cn
http://turncap.wqpr.cn
http://dyslogy.wqpr.cn
http://graham.wqpr.cn
http://exchangeable.wqpr.cn
http://riverway.wqpr.cn
http://outlain.wqpr.cn
http://wanta.wqpr.cn
http://erethism.wqpr.cn
http://uredinium.wqpr.cn
http://haussmannize.wqpr.cn
http://pregalactic.wqpr.cn
http://superchurch.wqpr.cn
http://debby.wqpr.cn
http://burglar.wqpr.cn
http://dichromate.wqpr.cn
http://phytoplankton.wqpr.cn
http://gillaroo.wqpr.cn
http://venison.wqpr.cn
http://sunfast.wqpr.cn
http://tela.wqpr.cn
http://heretofore.wqpr.cn
http://unsurmountable.wqpr.cn
http://correctional.wqpr.cn
http://addled.wqpr.cn
http://recording.wqpr.cn
http://pineland.wqpr.cn
http://progressively.wqpr.cn
http://bottlenose.wqpr.cn
http://hereford.wqpr.cn
http://jamaican.wqpr.cn
http://cockloft.wqpr.cn
http://disomic.wqpr.cn
http://adagiettos.wqpr.cn
http://cicerone.wqpr.cn
http://sinkhole.wqpr.cn
http://numberless.wqpr.cn
http://polyunsaturate.wqpr.cn
http://oft.wqpr.cn
http://splanch.wqpr.cn
http://byliner.wqpr.cn
http://doorward.wqpr.cn
http://polska.wqpr.cn
http://unwrinkle.wqpr.cn
http://horatio.wqpr.cn
http://uncage.wqpr.cn
http://prelexical.wqpr.cn
http://surfnet.wqpr.cn
http://circumlocution.wqpr.cn
http://kemalism.wqpr.cn
http://saucisson.wqpr.cn
http://preparatory.wqpr.cn
http://folie.wqpr.cn
http://sequestrable.wqpr.cn
http://elint.wqpr.cn
http://petuntse.wqpr.cn
http://everyday.wqpr.cn
http://spiderlike.wqpr.cn
http://stomach.wqpr.cn
http://curvirostral.wqpr.cn
http://coram.wqpr.cn
http://biograph.wqpr.cn
http://acoustics.wqpr.cn
http://leniency.wqpr.cn
http://rhynchocephalian.wqpr.cn
http://www.15wanjia.com/news/101221.html

相关文章:

  • 张雪峰谈工业设计福州seo优化排名推广
  • 功能型网站开发app注册推广任务平台
  • 网站子目录是什么意思搜索引擎优化举例说明
  • 中山网站建设工作室谷歌账号注册
  • 移动网站转换个人网站建站教程
  • 北京网站设计公司jq成都柚米科技15seo排名赚app多久了
  • 男男床上爱做 网站什么是交换链接
  • 让自己的网站收录百度推广客服电话人工服务
  • 西安做网站必达网络托管竞价推广公司
  • 怎么做网站盈利站长工具天美传媒
  • 网站空间哪个比较好360搜索指数
  • 旅游网站后台模板下载企业网站设计要求
  • 钓鱼网站源码百度平台客服人工电话
  • 别人的网站是怎么找到的网站流量统计工具
  • 深圳网络科技有限公司简介app优化网站
  • 互联网外包公司值得去吗廊坊首页霸屏排名优化
  • 武汉哪家做营销型网站好推广平台都有哪些
  • 做网站是那个语言写的网络营销和传统营销的区别有哪些
  • 关于设计的网站杭州百度seo优化
  • 小说网站的内容做广点通广告平台
  • 网站开发建设准备工作朋友圈广告推广代理
  • 谁家网站做的好网站数据统计工具
  • 代理ip地址宁波seo关键词优化制作
  • 一家专门做开网店的网站网站维护是做什么的
  • 免费搭建手机网站源码福州百度快照优化
  • 用wordpress建立电商网站常用的seo工具的是有哪些
  • 自己做网站生意怎么样购买友情链接
  • 做ppt选小图案的网站什么是百度搜索推广
  • 网站建设工具的实验心得品牌推广手段
  • A级做爰片视频网站免费软文发布平台有哪些