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

平台网站开发风险百度搜索引擎优化的推广计划

平台网站开发风险,百度搜索引擎优化的推广计划,wordpress调用特色图,公司注册名字查询目录 669. 修剪二叉搜索树 前言 思路 递归法 108.将有序数组转换为二叉搜索树 前言 递归法 538.把二叉搜索树转换为累加树 前言 递归法 总结 669. 修剪二叉搜索树 题目链接 文章链接 前言 本题承接昨天二叉搜索树的插入和删除操作题目,要对整棵二叉搜索树…

目录

669. 修剪二叉搜索树

前言

思路

递归法

108.将有序数组转换为二叉搜索树

前言

递归法

538.把二叉搜索树转换为累加树

前言

递归法

总结


669. 修剪二叉搜索树

题目链接

文章链接

前言

         本题承接昨天二叉搜索树的插入和删除操作题目,要对整棵二叉搜索树进行遍历修剪。

思路

        因为要遍历整棵二叉搜索树,因此不需要返回值也可以,我们可以完成修剪的操作,但是有返回值更方便,可以通过递归函数的返回值来移除节点。

递归法

/*** 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:TreeNode* trimBST(TreeNode* root, int low, int high) {if (root == NULL) return NULL;if (root->val < low){//寻找右子树符合区间的节点TreeNode* right = trimBST(root->right, low, high);return right;}if (root->val > high){//寻找左子树符合区间的节点TreeNode* left = trimBST(root->left, low, high);return left;}root->left = trimBST(root->left, low, high); root->right = trimBST(root->right, low, high); return root; }
};

        思路同前几题,依然是通过返回本次节点给上一层,上一层用左右孩子接住下一层的返回值。

108.将有序数组转换为二叉搜索树

题目链接

文章链接

前言

        题目强调得到的二叉搜索树必须平衡,因此不可以采用简单的线性结构构造二叉搜索树。要将有序数组的中值作为根节点,左侧作为左子树,右侧作为右子树。

递归法

/*** 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 {
private:TreeNode* traversal(vector<int>& nums, int left, int right){if (left > right) return NULL;int mid = left + (right - left) / 2;TreeNode* root = new TreeNode(nums[mid]);root->left = traversal(nums, left, mid - 1);root->right =  traversal(nums, mid + 1, right);return root;}
public:TreeNode* sortedArrayToBST(vector<int>& nums) {TreeNode* root = traversal(nums, 0, nums.size() - 1);return root;}
};

         在确定数组中值的时候以及递归时左右边界的确定,要严格根据遵守二分法,本题算法采用左闭右闭的区间形式。

538.把二叉搜索树转换为累加树

题目链接

文章链接

前言

         将二叉搜索树转化为累加树本质上和数组逆序累加求和的思路一致,难点在于二叉树的遍历顺序。

递归法

/*** 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 {
private:int pre = 0; //记录前一个节点的数值void traversal(TreeNode* cur){if (cur == NULL) return;traversal(cur->right);cur->val += pre;pre = cur->val;traversal(cur->left);}
public:TreeNode* convertBST(TreeNode* root) {pre = 0;traversal(root);return root;}
};

        本题单层递归采用右中左的逆中序遍历顺序。

总结

        二叉树正式完结!后期要多回顾总结。

http://www.khdw.cn/news/42491.html

相关文章:

  • 河西集团网站建设百度关键词搜索排行
  • js做网站框架windows7优化大师下载
  • 男女做那个视频网站免费自拍视频软文
  • soho怎么做网站中山seo排名
  • 怎么样的网站合适做城市代理网络推广员招聘
  • 云南放心seo整站优化windows优化大师怎么用
  • 洞泾做网站公司线上营销推广方式
  • 深圳品牌网站设计电话广州seo招聘
  • 网站制作添加视频哈尔滨最新消息
  • 如何知道网站什么时候做的如何做好网络营销工作
  • 遵义网站设计制作网站google官网
  • python可以做网站开发吗做网站的步骤
  • 做饲料推广哪个网站好宁波网络推广seo软件
  • 许昌做网站网络营销策划书
  • 建设网站教学百度搜索引擎推广收费标准
  • 云南网站建设维修公司百度运营优化师
  • 个人网站平台seo关键词排名软件
  • 做微信公众号微网站吗北京网络推广
  • wordpress xueqiu百度seo网站优化 网络服务
  • 哪个网站可以宣传做的蛋糕中国网评中国网评
  • 做进口零食批发网站seo入门基础教程
  • 有什么网站是专门做cosplay黄页网络的推广网站有哪些
  • 网站流量与广告费百度上做广告怎么收费
  • 网站服务器如何做热备价中国目前最好的搜索引擎
  • 赣州新闻联播2023seo推广培训班
  • 市场监管局的作用上海seo优化服务公司
  • 做公司网站每年多少钱天津网站优化公司
  • 销售平台公司网站seo怎么操作
  • 网站文字不能复制怎么做微信scrm
  • 网站建设的软件免费二级域名注册网站有哪些