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

leetcode0108. 将有序数组转换为二叉搜索树-medium

1 题目:将有序数组转换为二叉搜索树

官方标定难度:易

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。

示例 1:

在这里插入图片描述

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:
在这里插入图片描述

示例 2:

在这里插入图片描述

输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

提示:

1 <= nums.length <= 1 0 4 10^4 104
- 1 0 4 10^4 104 <= nums[i] <= 1 0 4 10^4 104
nums 按 严格递增 顺序排列

2 solution

找到中间的数,作为根节点,左边的作为左子树。右边的作为右子树即可。

代码

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

结果

在这里插入图片描述

http://www.xdnf.cn/news/142039.html

相关文章:

  • APP和小程序需要注册域名吗?(国科云)
  • JavaWeb:JavaScript
  • 【Go语言】RPC 使用指南(初学者版)
  • 深入理解C语言变量:从基础到实践
  • Electron从入门到入门
  • 资深程序员进阶设备分享,专业编程显示器RD280U
  • STM32驱动AD5318配置8通道DA详细讲解
  • 计算机组成原理:指令系统
  • 240425 leetcode exercises
  • 神经辐射场(NeRF)技术解析:3D重建与虚拟世界的未来
  • OceanBase 跻身 Forrester 三大领域代表厂商,全面支撑AI场景
  • 聚合分销小程序系统开发方案:整合AI对话、网盘、淘客CPS/CPA、电影票团购与会员卡业务
  • 蓝桥杯 6. 冰雹数
  • Kohya-ss-gui v25.0.3 训练Flux.1 大模型命令参数
  • TDengine 数据缓存技术
  • Android 编译问题 prebuilts/clang/host/linux-x86
  • MTKAndroid13-Launcher3 屏蔽部分app不让显示
  • Jenkins Pipeline 构建 CI/CD 流程
  • RK3588芯片NPU的使用:yolov8-pose例子图片检测在安卓系统部署与源码深度解析(rknn api)
  • ASP.NET Core 自动识别 appsettings.json的机制解析
  • 网络准入控制系统:2025年网络安全的坚固防线
  • 解析excel中的图片
  • 深入解析YOLO v1:实时目标检测的开山之作
  • 观测云数据在Grafana展示的最佳实践
  • 【安全扫描器原理】TCP/IP协议编程
  • 在 Vue3 中封装的 Axios 实例中,若需要为部分接口提供手动取消请求的功能
  • 智慧医疗领域TMI期刊2025年3月研究热点解析
  • 【音视频】AVIO输入模式
  • 红队系列-网络安全知识锦囊-CTF(持续更新)
  • Mac「brew」快速安装Redis