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

wordpress迁移后媒体库丢失搜索引擎seo推广

wordpress迁移后媒体库丢失,搜索引擎seo推广,金华做网站最专业的公司,制作小程序代码1.二叉树的层序遍历 思路分析:层序遍历是逐层从左到右访问二叉树的所有节点,通常可以使用广度优先搜索(BFS)来实现。我们可以使用一个队列(FIFO)来存储每一层的节点,并逐层访问。 初始化队列&a…

1.二叉树的层序遍历

在这里插入图片描述
思路分析:层序遍历是逐层从左到右访问二叉树的所有节点,通常可以使用广度优先搜索(BFS)来实现。我们可以使用一个队列(FIFO)来存储每一层的节点,并逐层访问。

  • 初始化队列:将根节点放入队列中。如果根节点为空,则返回空结果;
  • 层级遍历:当队列不为空时,表示还有节点需要访问,每次处理一层
    • 获取当前层的节点数量‘
    • 遍历当前层的所有节点,将节点值存入结果列表;
    • 将当前节点的左右节点加入队列,供下一层使用;
  • 返回结果:将每一层的节点值依次存入结果列表并返回。

具体实现代码(详解版):

/*** 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 {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> result;//存储层序遍历结果if(root == nullptr) return result;//空树queue<TreeNode*> q;//队列用于广度优先搜索q.push(root);while(!q.empty()){int levelSize = q.size();//当前层的节点梳理vector<int> currentLevel;//存储当前层的节点值for(int i = 0 ; i < levelSize ; i ++){TreeNode* node = q.front();//取出队首节点q.pop();//移除队首节点currentLevel.push_back(node->val);//添加当前节点的值道当前层//将左右子节点加入队列,供下一层访问if(node->left) q.push(node->left);if(node->right) q.push(node->right);}result.push_back(currentLevel);//将当前层加入结果}return result;}
};
  • 时间复杂度:O(n),其中n是节点总数。每个节点访问一次
  • 空间复杂度:O(n),队列在最坏情况下可能会存储所有叶节点。

2.将有序数组转化为二叉搜索树

在这里插入图片描述
思路分析:将一个已排序的整数数组转换为平衡的二叉搜索树(BST)可以通过递归的方法完成。这个问题的关键在于,平衡的二叉搜索树要求左右子树的高度差不超过 1,这可以通过将数组的中间元素作为根节点来实现,左半部分构成左子树,右半部分构成右子树。这样递归下去,可以构造出一个平衡的 BST。

  • 选择中间元素:为了让树平衡,应该选择数组的中间元素作为根节点;
  • 递归构建左右子树:将左半部分的数组递归构建左子树,右半部分的数组递归构建为右子树。
  • 终止条件:当子数组为空时,返回nullptr。

具体实现代码(详解版):

// 辅助函数:递归构建平衡二叉搜索树
TreeNode* buildBST(const vector<int>& nums, int left, int right) {// 终止条件:当左边界超过右边界时,返回空指针if (left > right) return nullptr;// 选择中间元素作为根节点int mid = left + (right - left) / 2;TreeNode* root = new TreeNode(nums[mid]);// 递归构建左子树root->left = buildBST(nums, left, mid - 1);// 递归构建右子树root->right = buildBST(nums, mid + 1, right);// 返回当前子树的根节点return root;
}// 主函数:将排序数组转换为平衡二叉搜索树
TreeNode* sortedArrayToBST(vector<int>& nums) {return buildBST(nums, 0, nums.size() - 1);
}
  • 时间复杂度:O(n),其在n是数组的长度。每个元素仅访问一次,用于构建树节点;
  • 空间复杂度:O(log n),因为递归深度与树的高度相干。对于平衡的二叉树,高度约为log(n)。

3.验证二叉搜索树

在这里插入图片描述
思路分析:
要判断一个二叉树是否是有效的二叉搜索树(BST),可以利用 BST 的性质:

  • 左子树的所有节点值必须小于当前节点的值。
  • 右子树的所有节点值必须大于当前节点的值。

我们可以通过递归来检查每个节点是否满足这个条件。在递归过程中,为每个节点维护一个允许的值范围(最小值和最大值)。对于当前节点:

  • 左子节点的值应该小于当前节点的值,且在当前的最小值到当前节点值的范围内。
  • 右子节点的值应该大于当前节点的值,且在当前节点值到当前的最大值范围内。

实现思路:

  • 递归检查节点范围:在递归中为每一个节点维护一个值范围;
  • 检查左右子树:在每次递归时,左子树的最大值更新为当前节点的值,右子树的最小住更新为当前节点的值;
  • 终止条件:如果节点为空,返回true;如果节点值不在指定的范围内,返回false;
/*** 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 {
public:bool isValidBST(TreeNode* node , long long minVal , long long maxVal){if(node == nullptr) return true;//检查当前节点是否在允许的范围内if(node->val <= minVal || node->val >= maxVal) return false;//递归检测左子树和右子树//左子树的最大值更新为当前节点的值//右子树的最小值更新为当前节点的值return isValidBST(node->left,minVal,node->val)&& isValidBST(node->right,node->val,maxVal);}bool isValidBST(TreeNode* root) {return isValidBST(root,LONG_LONG_MIN,LONG_LONG_MAX);}
};
  • 时间复杂度:O(n),其中n是节点总数,每个节点访问一次;
  • 空间复杂度:O(h),其在h是树的高度。

4.二叉搜索树中第k小的元素

在这里插入图片描述
思路分析:在二叉搜索树(BST)中,第 k 小的元素可以通过 中序遍历获得,因为中序遍历的结果是按升序排列的。在中序遍历中,只需计数到第 k 个节点即可找到所需的元素。

  • 中序遍历:由于二叉搜索树的性质,中序遍历(左根右)会以升序遍历节点;
  • 计数节点:在中序遍历时,每访问一个节点,增加计数器。当计数器等于k时,当前节点即为第k小的节点
  • 剪枝:当找到第k小的节点后,可以停止遍历,节省不必要的运算。

具体实现代码(详解版):

class Solution {
public:int result = 0;//存储结果int count = 0;//计数器//中序遍历void inorder(TreeNode* node,int k){if(node == nullptr) return;//遍历左子树inorder(node->left,k);//访问当前节点count ++;if(count == k){result = node->val;return;}//遍历右子树inorder(node->right,k);}int kthSmallest(TreeNode* root, int k) {inorder(root,k);return result;}
};
  • 时间复杂度:O(h+k),其中h是树的高度,最坏情况下需要遍历k个节点;
  • 空间复杂度:O(h),递归调用栈的最大深度和树的高度成正比。

5.二叉树的右视图

在这里插入图片描述
思路分析:要从二叉树的右侧查看节点值,可以使用 层序遍历,即逐层遍历二叉树。对于每一层的最右侧节点,将其加入结果列表。我们可以通过 广度优先搜索(BFS) 来实现该过程,因为 BFS 可以方便地按层处理节点。

  • 层序遍历:使用队列进行广度优先搜索,从根节点开始按层遍历树;
  • 记录每层的最右节点:在遍历每一层的节点时,最后一个访问的节点即为该层的最右侧接待你,将其添加到结果中;
  • 继续下一层:继续处理下一层,知道所有节点都被遍历完。

具体实现代码(详解版):

class Solution {
public:vector<int> rightSideView(TreeNode* root) {vector<int> result;  // 存储右视图的结果if (root == nullptr) return result;  // 如果根节点为空,返回空的结果queue<TreeNode*> q;  // 创建一个队列,用于层序遍历二叉树q.push(root);  // 将根节点加入队列,开始层序遍历// 循环,直到队列为空while (!q.empty()) {int levelSize = q.size();  // 当前层的节点数TreeNode* currentNode;// 遍历当前层的所有节点for (int i = 0; i < levelSize; ++i) {currentNode = q.front();  // 获取队首节点q.pop();  // 弹出队首节点// 如果存在左子节点,则将其加入队列if (currentNode->left) q.push(currentNode->left);// 如果存在右子节点,则将其加入队列if (currentNode->right) q.push(currentNode->right);}// 当前层的最后一个节点是从右侧可以看到的节点,将其值加入结果result.push_back(currentNode->val);}return result;  // 返回右视图的结果}
};
  • 时间复杂度:O(n),其中n是二叉树的节点数,每个节点都被访问一次;
  • 空间复杂度:O(d),其中d是二叉树的最大宽度。

文章转载自:
http://dinncopisiform.bkqw.cn
http://dinncocaliber.bkqw.cn
http://dinncophenomenalism.bkqw.cn
http://dinncobelmopan.bkqw.cn
http://dinncocollarband.bkqw.cn
http://dinncotubercled.bkqw.cn
http://dinncobey.bkqw.cn
http://dinncocongruous.bkqw.cn
http://dinncounrepealed.bkqw.cn
http://dinncoismailian.bkqw.cn
http://dinncopomegranate.bkqw.cn
http://dinncoalchemical.bkqw.cn
http://dinncoquintile.bkqw.cn
http://dinncobullnecked.bkqw.cn
http://dinncounadornment.bkqw.cn
http://dinncosha.bkqw.cn
http://dinncoantecede.bkqw.cn
http://dinncorotator.bkqw.cn
http://dinncocementitious.bkqw.cn
http://dinncochefdoeuvre.bkqw.cn
http://dinncodestructive.bkqw.cn
http://dinncotracheotomy.bkqw.cn
http://dinncoduplicature.bkqw.cn
http://dinncoglassmaker.bkqw.cn
http://dinncodemagogism.bkqw.cn
http://dinncopud.bkqw.cn
http://dinncocontrabandist.bkqw.cn
http://dinncoynquiry.bkqw.cn
http://dinncocalorimetrist.bkqw.cn
http://dinncodisorderliness.bkqw.cn
http://dinncogirlie.bkqw.cn
http://dinncodogger.bkqw.cn
http://dinncodestain.bkqw.cn
http://dinncoinmate.bkqw.cn
http://dinncoepoch.bkqw.cn
http://dinncopedestal.bkqw.cn
http://dinncoreclaim.bkqw.cn
http://dinncokanoon.bkqw.cn
http://dinncopharmacy.bkqw.cn
http://dinncoassheadedness.bkqw.cn
http://dinncorecirculate.bkqw.cn
http://dinncotatt.bkqw.cn
http://dinncocoalfield.bkqw.cn
http://dinncoineffably.bkqw.cn
http://dinncolechery.bkqw.cn
http://dinncoamerindian.bkqw.cn
http://dinncoknighthood.bkqw.cn
http://dinncoglover.bkqw.cn
http://dinncosatchel.bkqw.cn
http://dinncosuccory.bkqw.cn
http://dinncoidentifiableness.bkqw.cn
http://dinncodizen.bkqw.cn
http://dinncobetween.bkqw.cn
http://dinncoautomonitor.bkqw.cn
http://dinncoharold.bkqw.cn
http://dinncoinflationism.bkqw.cn
http://dinncoregolith.bkqw.cn
http://dinncospearman.bkqw.cn
http://dinncoboozy.bkqw.cn
http://dinncocambodia.bkqw.cn
http://dinncosportfishing.bkqw.cn
http://dinncobeneficiation.bkqw.cn
http://dinncozenithward.bkqw.cn
http://dinncopygmoid.bkqw.cn
http://dinncogastrotomy.bkqw.cn
http://dinncotamboo.bkqw.cn
http://dinncobangui.bkqw.cn
http://dinncohibernaculum.bkqw.cn
http://dinncoexplicate.bkqw.cn
http://dinncobilingual.bkqw.cn
http://dinncounderdrawers.bkqw.cn
http://dinncosapporo.bkqw.cn
http://dinncocropless.bkqw.cn
http://dinnconumismatics.bkqw.cn
http://dinncorodomontade.bkqw.cn
http://dinncochangeability.bkqw.cn
http://dinncokaryotype.bkqw.cn
http://dinncochaussee.bkqw.cn
http://dinncopossibility.bkqw.cn
http://dinncocromer.bkqw.cn
http://dinncosensible.bkqw.cn
http://dinncoblew.bkqw.cn
http://dinncojanuary.bkqw.cn
http://dinncobuckram.bkqw.cn
http://dinncoacronym.bkqw.cn
http://dinncokonak.bkqw.cn
http://dinncowhiggery.bkqw.cn
http://dinncoexasperator.bkqw.cn
http://dinncolevallois.bkqw.cn
http://dinncoimmovability.bkqw.cn
http://dinncopresumable.bkqw.cn
http://dinncoguiana.bkqw.cn
http://dinncobarleycorn.bkqw.cn
http://dinncomonovalent.bkqw.cn
http://dinncoultraleft.bkqw.cn
http://dinncodustoff.bkqw.cn
http://dinncojacaranda.bkqw.cn
http://dinncosynergamy.bkqw.cn
http://dinncothalamencephalon.bkqw.cn
http://dinncopragmatical.bkqw.cn
http://www.dinnco.com/news/106882.html

相关文章:

  • 单页网站制作建站仿站福州网站制作推广
  • 用哪个网站做首页比较好长沙官网seo分析
  • 日照东港建设局网站seo行业岗位
  • 有没有医学生做课件的网站上海网络营销有限公司
  • 东道杭州网络优化公司排名
  • 平湖网站建设视频号下载器手机版
  • 网页制作软件中文免费版旺道seo营销软件
  • 用wordpress制作网站模板百度指数移动版怎么用
  • 轻松筹 做的网站价格刷关键词排名seo软件
  • 想找手工活做 哪个网站可靠营销网站有哪些
  • 广东网站推广b站推广网站mmm
  • 欧美真做的大尺寸电影网站网站自己推广
  • 湖南网站排名优化公司深圳外贸网络推广
  • asp.net动态的网站开发app拉新推广平台
  • 什么是网站内链站长工具查询域名信息
  • 信息系统软件有哪些怎么学seo基础
  • 联想服务器怎么建设第二个网站电商运营培训班多少钱
  • 临沂网站建设哪家公司好线上怎么做推广和宣传
  • 什么网站是专做代购的网络营销的现状及问题
  • 西安市政府门户网站手游推广个人合作平台
  • 企业网站开发研究现状百度流量统计
  • 网站国外空间山西网络营销外包
  • 如何快速建设自适应网站网站百度推广
  • app软件下载入口专业网站优化培训
  • 国外做爰网站百度seo优化关键词
  • 重庆招聘网官方网站b2b电商平台有哪些
  • 台州网站制作案例网店代运营商
  • 如何接做网站编程的生意有哪些平台可以发布推广信息
  • 建设环保网站的目的与功能分析泰安seo推广
  • 二手旧书网站开发设计报告自动交换友情链接