题目:
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

思路:
将一个已排序的数组构成一个高度平衡的二叉排序树。每次中点为根结点,然后递归调用中点左边剩下的和右边剩下的元素。

代码1:

输出结果: 12ms

代码2:
没有代码1快。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* sortedArrayToBST(vector<int>& nums) {return dfs(nums,0,nums.size()-1);//调用函数}TreeNode* dfs(vector<int>& nums,int left,int right){if(left>right){//如果left比right大,直接返回NULLreturn NULL;}int mid=(right-left+1)/2+left;//计算中点的索引TreeNode* root=new TreeNode(nums[mid]);//将中点作为当前的根结点root->left=dfs(nums,left,mid-1);//递归调用左子数组和右子数组root->right=dfs(nums,mid+1,right);return root;}
};
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* sortedArrayToBST(vector<int>& nums) {if(nums.size()==0){//如果当前nums的大小为0,直接返回NULLreturn NULL;}if(nums.size()==1){//如果当前nums的大小为1,将这个数构成一个新结点并返回return new TreeNode(nums[0]);}int middle=nums.size()/2;//计算中点在数组中下标TreeNode *root=new TreeNode(nums[middle]);//将中点作为当前的根结点vector<int> lefttree(nums.begin(),nums.begin()+middle);//分别构成左右子数组vector<int> righttree(nums.begin()+middle+1,nums.end());root->left=sortedArrayToBST(lefttree);//递归调用来构成左子树和右子树root->right=sortedArrayToBST(righttree);return root;}
};

输出结果: 19ms

LeetCode 108. Convert Sorted Array to Binary Search Tree相关推荐

  1. 【数组递归构造二叉树】LeetCode 108. Convert Sorted Array to Binary Search Tree

    LeetCode 108. Convert Sorted Array to Binary Search Tree Solution1:我的答案 构造二叉树利用递归 /*** Definition fo ...

  2. LeetCode: 108. Convert Sorted Array to Binary Search Tree

    题目 Given an array where elements are sorted in ascending order, convert it to a height balanced BST. ...

  3. leetcode 108. Convert Sorted Array to Binary Search Tree | 108. 将有序数组转换为二叉搜索树(Java)

    题目 https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 题解 经典二分,不解释了,直接看代码 /*** ...

  4. leetcode python3 简单题108. Convert Sorted Array to Binary Search Tree

    1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第一百零八题 (1)题目 英文: Given an array where elem ...

  5. 108. Convert Sorted Array to Binary Search Tree

    一.题目 1.审题 2.分析 给出一个有序的不重复的整形数组,组成一个二路平衡二叉树(左右子树高度差不超过1). 二.解答 1.思路: 方法一. 采用递归的方式.(像二分查找) ①.为了保持平衡,查找 ...

  6. LeetCode: 109. Convert Sorted List to Binary Search Tree

    题目 Given a singly linked list where elements are sorted in ascending order, convert it to a height b ...

  7. Convert Sorted Array to Binary Search Tree - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Convert Sorted Array to Binary Search Tree - LeetCode 注意点 不要访问空结点 题目要求的是平衡二叉搜 ...

  8. LeetCode: Convert Sorted Array to Binary Search Tree 解题报告

    Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...

  9. 【链表递归构造二叉树】LeetCode 109. Convert Sorted List to Binary Search Tree

    LeetCode 109. Convert Sorted List to Binary Search Tree Solution1:我的答案 偷鸡摸狗的做法 /*** Definition for s ...

最新文章

  1. NAT技术解决了IPv4地址短缺的问题,假设内网的地址数是m,而外网地址数n,若mn,则这种技术叫做(66),若mn,且n=1,则这种技术这叫做(67)。【答案】A C
  2. JSP页面元素的解析顺序
  3. 压缩感知 compressive sensing(转)
  4. 提供《华容道与数据结构》代码供测试
  5. Error loading MySQLdb module: No module named MySQLdb
  6. 数据库设计的第三范式
  7. SAP C4C url mashup跳转原理 - C4C UI到Mashup的参数传递是如何进行的
  8. 60-330-000-使用-窗口TopN分析与实现
  9. 【实用工具】之CSDN表格模板
  10. yield用法详解——最简单,最清晰的解释
  11. 游戏筑基开发之简单迷宫行走(内附碰撞检测底层逻辑)
  12. split方法在低版本IE浏览器上无法解析的问题
  13. SPSS入门教程—日期类型的变量转换
  14. python 面向对象编程;(搬家具)
  15. linux下虚拟安装cad,LeoCAD下载 LeoCAD(虚拟乐高模型创建工具) 32位/64位 Linux版 v18.01 官方英文安装版 下载-脚本之家...
  16. php信鸽针对别名,【经验】阿翁:信鸽回血留种公式(图)
  17. p-sum结构解释+代码 二叉区间树
  18. 英语四六级保命班笔记
  19. 达梦数据库修改字段(列)(基表修改语句)
  20. 阿里云云栖社区合作指南

热门文章

  1. 多级队列调度算法可视化界面_进程调度功能由操作系统内核的进程调度程序完成...
  2. 30天自制操作系统 pdf_30天自制操作系统:第三天:系统引导完成
  3. PyG图神经网络框架torch-geometric安装
  4. linux那些事之LRU(1)
  5. 三种方法可以使用StyleGAN预先训的生成器
  6. knime实现python编写脚本
  7. 广州python平均薪资_11 月全国程序员平均工资出炉,看看的你得薪资跟上平均水平了吗。...
  8. jQueryEasyUI框架 - panel 选项卡高度自适应
  9. Z-BlogPHP导航主题模版源码 绿色完美版
  10. PHP格子在线自动发卡网源码 全新一键安装版