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

3有免费建网站seo网站优化公司

3有免费建网站,seo网站优化公司,做图片赚钱的网站,设计者联盟官网文章目录 108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 题目链接 文章讲解 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* …

文章目录

  • 108.将有序数组转换为二叉搜索树
  • 538.把二叉搜索树转换为累加树
  • 669. 修剪二叉搜索树

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 {
public:// solve 函数递归地将部分数组转换为二叉搜索树TreeNode* solve(vector<int>& nums, int left, int right){// 递归结束条件:当左指针超过右指针时,表示当前区间无有效元素,返回 NULLif(left > right) return NULL;// 计算中间位置的索引,选择数组的中间元素作为当前子树的根节点int mid = left + ((right - left) / 2);  // 防止溢出,采用这种写法计算中点// 创建当前节点的树节点,值为数组中的中间值TreeNode* node = new TreeNode(nums[mid]);// 递归构建左子树:左区间是从 left 到 mid-1node->left = solve(nums, left, mid - 1);// 递归构建右子树:右区间是从 mid+1 到 rightnode->right = solve(nums, mid + 1, right);// 返回当前创建的树节点return node;}// 主函数:将整个排序数组转换为高度平衡的二叉搜索树TreeNode* sortedArrayToBST(vector<int>& nums) {// 调用递归函数,初始时整个数组的区间是从 0 到 nums.size()-1TreeNode* res = solve(nums, 0, nums.size() - 1);// 返回生成的平衡二叉搜索树的根节点return res;}
};

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

题目链接
文章讲解

class Solution {
public:// solve 函数执行逆中序遍历并更新节点值void solve(TreeNode* root, int& k) {if (root == NULL) return;  // 如果节点为空,直接返回// 逆中序遍历:首先遍历右子树solve(root->right, k);// 更新当前节点值:将当前节点的值加上之前访问过的节点的值(k)root->val += k;// 更新 k 为当前节点的值k = root->val;// 最后遍历左子树solve(root->left, k);}// 主函数:将二叉搜索树转换为累加树TreeNode* convertBST(TreeNode* root) {int k = 0;  // 初始化 k 为 0,用于累加solve(root, k);  // 执行逆中序遍历并更新树的节点值return root;  // 返回转换后的树的根节点}
};

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:// 修剪二叉搜索树,返回符合区间 [low, high] 的树TreeNode* trimBST(TreeNode* root, int low, int high) {// 递归的基准条件:如果当前节点为空,则返回 nullptrif (root == nullptr) return nullptr;// 如果当前节点值小于 low,则不需要这个节点和它的左子树,递归修剪右子树if (root->val < low) {TreeNode* right = trimBST(root->right, low, high); // 寻找符合区间 [low, high] 的节点return right; // 返回修剪后的右子树}// 如果当前节点值大于 high,则不需要这个节点和它的右子树,递归修剪左子树if (root->val > high) {TreeNode* left = trimBST(root->left, low, high); // 寻找符合区间 [low, high] 的节点return left; // 返回修剪后的左子树}// 如果当前节点的值在 [low, high] 之间,递归修剪左右子树root->left = trimBST(root->left, low, high); // 修剪左子树root->right = trimBST(root->right, low, high); // 修剪右子树// 返回当前节点(它的左右子树已经被修剪)return root;}
};
http://www.dtcms.com/wzjs/253580.html

相关文章:

  • 招聘网站分析报告怎么做国际军事新闻
  • 在360网站上怎么做推广福州关键词搜索排名
  • 美国站点网站怎么做市场推广方案怎么写
  • 如何做网站ab测试香港seo公司
  • 什么企业适合做网站品牌营销理论
  • 宝安网站建设公司百度推广联盟
  • 做网站用别人图片文章会侵权吗西安搜建站科技网站
  • 街道人大网站建设搜索引擎优化原理
  • 制作网站需要怎么做优化近义词
  • 做网站珠海原创文章代写平台
  • 广告设计网课seo和sem哪个工资高
  • 返利网站开发葫岛百度seo
  • 网站建设基本流程视频惠州seo报价
  • 郑州网络推广联系方式泉州seo按天收费
  • 建设通属于官方网站三只松鼠的软文范例
  • 做网站还 淘宝网站网络推广服务
  • flash网站源文件下载营销管理系统
  • 专门做岛屿的网站2024年最新时事新闻
  • 网站设计需要需要用域名注册查询入口
  • 博客网站主页代码html线上推广的三种方式
  • 万网网站根目录搜索引擎优化是什么工作
  • 响应式网站自助建设平台南京seo新浪
  • 网站建设指引seo模拟点击软件源码
  • 扬州网站建设交换链接或称互惠链接
  • 做网站需知网站建设的重要性
  • 西安免费做网站百度seo策略
  • 深圳网站建设制作厂家百度怎么注册自己的店铺
  • 厨之梦进口食品网站谁做的免费b站推广网站有哪些
  • 网站开发公司需要哪些资质深圳网络推广渠道
  • 网站界面修改软件外包企业排名