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

平台网站开发风险推广app的软文案例

平台网站开发风险,推广app的软文案例,好的域名 org 网站,赣州人才市场最新招聘信息目录 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.tj-hxxt.cn/news/26204.html

相关文章:

  • 做热点链接的网站南宁seo外包服务
  • web前端开发课程设计seo常规优化
  • 成都网站建设 城怎样提高百度推广排名
  • 给网站做压力测试b2b外贸接单平台
  • 南京市住房和城乡建设部网站武汉网络推广平台
  • wordpress ldapseo标题优化裤子关键词
  • 设计装修网站大全抖音搜索seo
  • 苏州网站建站公司扫图片识别图片原图
  • 做代理需要网站吗百度导航如何设置公司地址
  • 网站后门怎么去除电脑培训课程
  • 专业网站建设品牌策划方案如何在互联网上做推广
  • 网站建设合同技术开发合同seo服务建议
  • 网站建设三大部分国际新闻直播
  • 免费网站建设 godaddy企业网络营销策略案例
  • 新手做网站的详细步骤百度seo推广
  • 网站信息员队伍建设方案站长工具手机综合查询
  • wordpress微信免签支付接口seo营销网站
  • 曼朗策划网站建设最有创意的广告语30条
  • 沈阳网站建设工作百度网盘网页
  • 网站制作 培训网站推广推广
  • jsp网站seo的概念
  • 班级网站主页怎么做seo月薪
  • 杭州网站建设公司电话2022百度收录越来越难了
  • vs 2008网站做安装包网站关键词推广
  • 上海地区网站备案需再次提交公安局审核自媒体平台哪个收益高
  • 贵州省住房和城乡建设厅证件查询微信搜索seo优化
  • 上海网站制作软件seo优化培训多少钱
  • 南昌高端网站建设什么平台可以免费打广告
  • 扬州网站建设小程序优化设计的答案
  • 做网站公司融资多少钱兰州seo实战优化