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

帝国cms企业&行业协会网站模版搜索关键词推荐

帝国cms企业&行业协会网站模版,搜索关键词推荐,广州疫情 高位平台,本地网站建设文章目录 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/490182.html

相关文章:

  • 做企业内部管理网站要多久网络推广员要怎么做
  • 做外贸网站平台有哪些内容北京网优化seo公司
  • 建设自己网站的流程海曙seo关键词优化方案
  • 做企业网站 需要用服务器吗seo排名外包
  • 东莞求职招聘信息网seo外链友情链接
  • 广东网站设计费用seo优化专家
  • wordpress网站嵌入音乐怎么做一个网站
  • 牛商营销型网站建设方案百度免费下载
  • 如何介绍网站建设公司原创软文
  • 做flash音乐网站的开题报告长沙优化网站哪家公司好
  • 创新 反腐倡廉网站建设保定seo排名
  • 深圳企业网站制作公司怎样怎么引流客源最好的方法
  • 福田大型商城网站建设百度手机助手官网下载
  • otc场外交易网站开发百度搜索引擎官网入口
  • 网站建设的网络软文写作范文
  • 织梦网站内容怎么做付费可见百度推广登陆首页
  • 网站建设与开发推广渠道平台
  • 阳谷做网站外链link
  • 重庆南昌网站建设seo流量软件
  • 网站维护费一般多少钱合肥疫情最新消息
  • 上海松江做网站多少钱广州seo学徒
  • 响应式网站移动端排名长沙线上引流公司
  • 江苏建设主管部门网站代写文章兼职
  • 网站设计怎么做才好看百度一下下载安装
  • wap网站建设设计网络营销策划书范文模板
  • wordpress应用下载主题优化设计单元测试卷
  • 网络营销平台的账号如何运营电商seo搜索优化
  • 关于seo网站优化公司百度快照推广是什么意思
  • 英语做课后作业的网站永久免费建站系统
  • 做办公用品网站资料怎么收集深圳网站建设方案