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

济南网站建设和网络推广哪个好/自己怎么建网站

济南网站建设和网络推广哪个好,自己怎么建网站,办一家建筑公司怎么样,品牌型 网站建设1.最大二叉树 654. 最大二叉树 这题与中序和后序构造二叉树有点相似 其实思路都是划分区域来构建二叉树,这里的构造是在区间范围内找到最大值 1.返回值为TreeNode*,参数为nums和规定取值范围的左右标志 2.如果left>right,说明此时递归结束…

1.最大二叉树

654. 最大二叉树

这题与中序和后序构造二叉树有点相似

其实思路都是划分区域来构建二叉树,这里的构造是在区间范围内找到最大值

1.返回值为TreeNode*,参数为nums和规定取值范围的左右标志

2.如果left>right,说明此时递归结束,返回nullptr

3.首先建立节点才能在后续的左右节点建立关系,因此我们需要使用中序遍历。首先找出left到right范围内最大值和最大值的位置,此后构建节点,节点的left和right进行递归,传入的值分别是left,mid-1和mid+1,right。

class Solution {
public:TreeNode* _GetTreeR(vector<int>& nums,int left,int right){if(left>right)return nullptr;int mid = left;int max = nums[left];for(int i =left;i<=right;i++){if(nums[mid]<nums[i]){mid=i;max = nums[i];}}TreeNode* root = new TreeNode(max);root->left=_GetTreeR(nums,left,mid-1);root->right=_GetTreeR(nums,mid+1,right);return root;}TreeNode* constructMaximumBinaryTree(vector<int>& nums) {return _GetTreeR(nums,0,nums.size()-1);}
};

2.合并二叉树

617. 合并二叉树

此题其实就是构建二叉树,无非有一个注意的点是,root1和root2是否为空的问题

1.如果root1和root2都为空,那么说明本次递归结束,我们返回nullptr即可

2.依然采用的是前序遍历,中间节点的操作就是构造节点,首先构造节点指针,判断节点的情况:

如果两个节点都不为空,那么我们构造的节点值要二者相加,随后遍历root1和root2的左右节点

如果其中节点都为空,那么我们构造的节点值为另一个数,随后遍历空节点也要传入nullptr使得下一层的递归不越界访问

class Solution {
public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2){if(root1==nullptr&&root2==nullptr)return nullptr;TreeNode* root = nullptr;if(root1&&root2){root = new TreeNode(root1->val+root2->val);root->left=mergeTrees(root1->left, root2->left);root->right=mergeTrees(root1->right, root2->right);}else if(root1){root = new TreeNode(root1->val);root->left=mergeTrees(root1->left, nullptr);root->right=mergeTrees(root1->right, nullptr);}else{root = new TreeNode(root2->val);root->left=mergeTrees(nullptr, root2->left);root->right=mergeTrees(nullptr, root2->right);}return root;}
};

3.二叉搜索树的二分查找

700. 二叉搜索树中的搜索

其思想就是二分

1.如果root为nullptr,说明遍历结束

2.如果root的值与val相同,直接返回该root

3.如果不等,大于val要往左边递归找,小于val要往右边递归找

class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {if(root==nullptr)return nullptr;if(root->val==val)return root;else if(root->val>val)return searchBST(root->left,val);elsereturn searchBST(root->right,val);return root;}
};

4.检验二叉搜索树

98. 验证二叉搜索树

检验二叉搜索树的方法就是左边是否小于根节点,右边是否大于根节点

需要注意的是,我们不能只看三个节点之间的比较,因为这样是不够的,打个比方:一个节点的右节点确实大于根节点,但是右节点的的左节点不仅小于右节点,还小于根节点,虽然它不是二叉搜索树,但是我们如果只是比较根左右的关系,那么一定是失败的。

class Solution {
public:bool isValidBST(TreeNode* root) {if(root==nullptr)return true;if(root->left){TreeNode* tmp = root->left;if(tmp->val>=root->val)return false;while(tmp->right){tmp = tmp->right;if(tmp->val>=root->val)return false;}}if(root->right){TreeNode* tmp = root->right;if(tmp->val<=root->val)return false;while(tmp->left){tmp = tmp->left;if(tmp->val<=root->val)return false;}}return isValidBST(root->left)&&isValidBST(root->right);}
};
http://www.jmfq.cn/news/4944817.html

相关文章:

  • 网站建设一条龙/学电脑在哪里报名
  • 建筑工程网登/广州seo优化公司排名
  • 我和椅子做游戏小精灵网站/能让网络非常流畅的软件
  • javaweb做的网站有哪些/linux网站入口
  • wordpress 响应式模板下载/网站页面优化方法
  • seo网站快速排名外包/策划营销推广方案
  • 安阳哪里做360网站/亚洲精华国产精华液的护肤功效
  • 做网络推广常用网站/百度关键词搜索量排行
  • 盱眙网站建设公司/百度搜索引擎的特点
  • 东莞物流网站建设/网络推广是什么职业
  • 企业品牌网站建设我们的优势/游戏代理免费加盟
  • 公司网站建设模板/引流推广
  • 淘宝网站那个做的/接外包项目的网站
  • 学做莱网站/百度怎么打广告在首页
  • 站酷网官网进入/seo伪原创工具
  • 猪八戒网做网站如何/广告发布
  • 可视化编辑建站平台/重庆seo网络推广平台
  • html5网站源代码/网站优化公司上海
  • 征婚网站做原油/谷歌推广平台
  • dede网站模板安装/竞价恶意点击犯法吗
  • 网站用户体验优化方案/最有效的免费推广方法
  • 做购物类网站有哪些/医疗器械龙头股
  • 网页设计与网站建设案例教程/宁波seo基础入门
  • 设计师招聘网站有哪些/怎样制作一个自己的网站
  • 推广网站怎么建/seo优化主要工作内容
  • 珠海网站推广/郑州网络营销公司哪个好
  • 网站建设方案案例/网络营销策划方案800字
  • 网站建设长春/百度学术官网论文查重免费
  • 南昌企业做网站设计/hao123网址导航
  • 国内建网站流程/各大搜索引擎提交入口