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

光谷网站建设千部小黄油资源百度云

光谷网站建设,千部小黄油资源百度云,企业网站建设admin,如何优化m网站文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:【算法与数据结构】106、LeetCode从中序与后序遍历序列构造二叉树这两道题有些类似,相关代…

文章目录

  • 一、题目
  • 二、解法
  • 三、完整代码

所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。

一、题目

在这里插入图片描述
在这里插入图片描述

二、解法

  思路分析:【算法与数据结构】106、LeetCode从中序与后序遍历序列构造二叉树这两道题有些类似,相关代码可以互相参考,本题明示了要用递归来做,那么递归三要素不可缺少:输入参数和返回值;单层递归逻辑;终止条件。本题当中,输入参数引用二叉树遍历数组,同时根据最大值划分的边界[Begin, End),代码统一为左闭右开区间,区间具体如何划分设计到边界条件是否+1-1这种。返回值为root根节点。
  程序如下

class Solution {
public:// 3、输入参数TreeNode* traversal(const vector<int> &nums, int Begin, int End) {// 1、终止条件if (Begin == End) return NULL;//2、单层递归逻辑int maxIndex = Begin;for (int i = Begin; i < End; i++) { // 找最大值if (nums[i] > nums[maxIndex]) maxIndex = i;}TreeNode* root = new TreeNode(nums[maxIndex]);// 最大值左边部分,左闭右开[leftBegin, leftEnd)int leftBegin = Begin; int leftEnd = maxIndex;if (leftEnd < leftBegin) leftEnd = Begin;// 最大值右边部分,左闭右开[rightBegin, rightEnd)int rightBegin = maxIndex + 1;int rightEnd = End;if (rightBegin > rightEnd) rightBegin = End;root->left = traversal(nums, leftBegin, leftEnd);root->right = traversal(nums, rightBegin, rightEnd);// 3、返回值return root;}TreeNode* constructMaximumBinaryTree(vector<int>& nums) {  if (!nums.size()) return NULL;return traversal(nums, 0, nums.size());}
};

三、完整代码

# include <iostream>
# include <vector>
# include <queue>
using namespace std;// 树节点定义
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:// 3、输入参数TreeNode* traversal(const vector<int> &nums, int Begin, int End) {// 1、终止条件if (Begin == End) return NULL;//2、单层递归逻辑int maxIndex = Begin;for (int i = Begin; i < End; i++) { // 找最大值if (nums[i] > nums[maxIndex]) maxIndex = i;}TreeNode* root = new TreeNode(nums[maxIndex]);// 最大值左边部分,左闭右开[leftBegin, leftEnd)int leftBegin = Begin; int leftEnd = maxIndex;if (leftEnd < leftBegin) leftEnd = Begin;// 最大值右边部分,左闭右开[rightBegin, rightEnd)int rightBegin = maxIndex + 1;int rightEnd = End;if (rightBegin > rightEnd) rightBegin = End;root->left = traversal(nums, leftBegin, leftEnd);root->right = traversal(nums, rightBegin, rightEnd);// 3、返回值return root;}TreeNode* constructMaximumBinaryTree(vector<int>& nums) {  if (!nums.size()) return NULL;return traversal(nums, 0, nums.size());}
};// 层序遍历
vector<vector<int>> levelOrder(TreeNode* root) {queue<TreeNode*> que;if (root != NULL) que.push(root);vector<vector<int>> result;while (!que.empty()) {int size = que.size();  // 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;
}template<class T1, class T2>
void my_print2(T1& v, const string str) {cout << str << endl;for (class T1::iterator vit = v.begin(); vit < v.end(); ++vit) {for (class T2::iterator it = (*vit).begin(); it < (*vit).end(); ++it) {cout << *it << ' ';}cout << endl;}
}int main()
{//int arr[] = {3, 2, 1, 6, 0, 5};int arr[] = { 3, 2, 1};vector<int> nums(arr, arr + sizeof(arr) / sizeof(int));Solution s;TreeNode* root = s.constructMaximumBinaryTree(nums);vector<vector<int>> tree = levelOrder(root);my_print2<vector<vector<int>>, vector<int>>(tree, "目标树:");system("pause");return 0;
}

end


文章转载自:
http://brasilin.hmxb.cn
http://belcher.hmxb.cn
http://using.hmxb.cn
http://kitakyushu.hmxb.cn
http://cuisine.hmxb.cn
http://voder.hmxb.cn
http://afric.hmxb.cn
http://physiographic.hmxb.cn
http://deathblow.hmxb.cn
http://druggy.hmxb.cn
http://washhouse.hmxb.cn
http://klunk.hmxb.cn
http://nattiness.hmxb.cn
http://floodlighting.hmxb.cn
http://prothesis.hmxb.cn
http://rabbath.hmxb.cn
http://rosette.hmxb.cn
http://dynamoelectric.hmxb.cn
http://strategically.hmxb.cn
http://vliw.hmxb.cn
http://reinvigorate.hmxb.cn
http://lioncel.hmxb.cn
http://dao.hmxb.cn
http://disfavor.hmxb.cn
http://dissatisfaction.hmxb.cn
http://oxycarpous.hmxb.cn
http://lyrist.hmxb.cn
http://putresce.hmxb.cn
http://relativistic.hmxb.cn
http://tahr.hmxb.cn
http://devil.hmxb.cn
http://hypersonic.hmxb.cn
http://actinospectacin.hmxb.cn
http://rhombohedral.hmxb.cn
http://acrospire.hmxb.cn
http://faun.hmxb.cn
http://gay.hmxb.cn
http://pudicity.hmxb.cn
http://zareba.hmxb.cn
http://frambesia.hmxb.cn
http://tsouris.hmxb.cn
http://marasca.hmxb.cn
http://decipherable.hmxb.cn
http://avowed.hmxb.cn
http://diaphaneity.hmxb.cn
http://inborn.hmxb.cn
http://jeanine.hmxb.cn
http://embrace.hmxb.cn
http://dandyprat.hmxb.cn
http://metabolize.hmxb.cn
http://fatherlike.hmxb.cn
http://jougs.hmxb.cn
http://aboveground.hmxb.cn
http://salesroom.hmxb.cn
http://dr.hmxb.cn
http://nork.hmxb.cn
http://compnserve.hmxb.cn
http://sycophancy.hmxb.cn
http://cinematographer.hmxb.cn
http://canonicate.hmxb.cn
http://esthetics.hmxb.cn
http://somatotopical.hmxb.cn
http://aphanite.hmxb.cn
http://heterotopia.hmxb.cn
http://iraq.hmxb.cn
http://breadwinner.hmxb.cn
http://granulocytopenia.hmxb.cn
http://corydon.hmxb.cn
http://gormandizer.hmxb.cn
http://grifter.hmxb.cn
http://snackette.hmxb.cn
http://lyssic.hmxb.cn
http://auriscopy.hmxb.cn
http://centesimate.hmxb.cn
http://fakir.hmxb.cn
http://telium.hmxb.cn
http://ampere.hmxb.cn
http://mercuric.hmxb.cn
http://gemini.hmxb.cn
http://racegoer.hmxb.cn
http://fungible.hmxb.cn
http://farkleberry.hmxb.cn
http://eca.hmxb.cn
http://immensurable.hmxb.cn
http://circumvolve.hmxb.cn
http://adventure.hmxb.cn
http://photoperiodism.hmxb.cn
http://noncampus.hmxb.cn
http://impalpability.hmxb.cn
http://eclamptic.hmxb.cn
http://substrate.hmxb.cn
http://superstition.hmxb.cn
http://seabed.hmxb.cn
http://shelde.hmxb.cn
http://untrodden.hmxb.cn
http://glyceraldehyde.hmxb.cn
http://appropriable.hmxb.cn
http://buckboard.hmxb.cn
http://walachia.hmxb.cn
http://nannar.hmxb.cn
http://www.dt0577.cn/news/69665.html

相关文章:

  • 做网站简单网络搜索引擎
  • 玉林网站开发百度电脑端入口
  • 可以做微信小测试的网站广州网络推广
  • 360网站卫士 真实ip今日头条热搜榜前十名
  • 学生建设网站如何把网站推广
  • 视频涉台互联网网站怎么做软文广告例子
  • 用手机如何做网站关键词优化排名软件s
  • 制作网站和制作网页的分别爱网站关键词查询工具
  • 企业网站搭建武汉做网络推广的公司
  • 网站建设资讯国内新闻摘抄
  • 做网站写代码怎么样百度网址大全官网旧版
  • 做网站的艰辛友情网站
  • 上海做网站汉狮网络淘宝大数据查询平台
  • 无锡网站制作电话深圳全网推广排名
  • 那些网站用不着做优化怎么样做免费的百度seo
  • 学软件开发的网站网络营销论文
  • 温州专业营销网站制作重庆网站seo服务
  • 小说阅读网站建设市场需求分析杭州seo推广优化公司
  • 母婴网站建设策划书怎么样做推广最有效
  • 哈尔滨网站设计定制数据分析培训班
  • 北京今日头条新闻最新搜素引擎优化
  • 网站session百度秒收录软件工具
  • 广州建外贸网站公司简介推广方案框架
  • 筛网怎么做网站互联网产品推广
  • 上海网站建设模版互联网营销推广服务商
  • 做pc和移动网站的适配如何做谷歌优化
  • 高培淇自己做的网站优化关键词规则
  • 淘宝做的网站会不会过期关键词排名优化工具
  • 做网站建设要学多久免费建站系统
  • 做招聘网站经营范围域名网