当前位置: 首页 > 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.bdqn1.cn/news/127.html

相关文章:

  • 网站怎样做微信公众号关键词搜索热度查询
  • 淘宝便宜的团购网站建设公司个人怎么做网络推广
  • 做国际网站的上海高端网站公司谷歌搜索排名
  • 可道网站建设百度高级搜索怎么用
  • 长春火车站到龙嘉机场动车时刻表seo优化包括哪些内容
  • 必应网站建设cba赛程
  • 如何搭建钓鱼网站宁波seo网络推广多少钱
  • 镇江网站建设报价长治seo
  • 合肥商城网站建设黑帽seo
  • 做宠物网站赚钱吗搜索引擎营销简称为
  • 珠海网站制作首页seo优化培训课程
  • 新疆乌鲁木齐最新新闻seo教程网
  • 武汉市东西湖区建设局官方网站bt磁力搜索
  • 自己做电影资源网站百度广告联盟赚广告费
  • wordpress 糗百台州seo优化公司
  • php js做网站网络营销是什么专业
  • 全网网络营销推广火热招商中绍兴seo管理
  • 福州网站搜索引擎优化济宁百度推广公司有几家
  • 大连外贸网站建设班级优化大师免费下载安装
  • 企业建设官方网站的目的广东百度seo
  • 跨境电商网站搭建百度百度地图
  • 龙华网站建设哪家好海外推广平台有哪些?
  • 网站备案服务商查询百度seo搜索引擎优化厂家
  • 黄埔网站开发宁波网站优化公司哪家好
  • 子页面的网站地址怎么做百度一下下载
  • 网站宣传策略seo网络推广专员招聘
  • 正规网站做菠菜广告江苏关键词推广seo
  • 手机网站集成支付宝怎样免费建立自己的网站
  • 网站开发需要什么专业做app软件大概多少钱
  • 濮阳疫情最新消息今天封城了群排名优化软件官网