题目意思:将排序后的数组转换成二叉查找树。

二叉查找树的定义:

(1)若它的左子树不空,则其左子树上任意结点的关键字的值都小于根节点关键字的值。

(2)若它的右子树不空,则其右子树上任意结点的关键字的值都大于根节点关键字的值。

(3)它的左、右子树本身又是一个二叉查找树。

Description:已知一个按升序排列的数组,将它转换为一个高度平衡二叉树。其中,平衡二叉树(AVL树)被定义为其左子树和右子树都是高度平衡的二叉树,且左子树和右子树的高度之差的绝对值不超过1。

解题思路:因为给定的数组是按照升序排列的,所以可以先取出数组中间位置的值作为二叉查找树的根结点,然后以该数组中间位置的值为中心,将左边的数组划分到根结点的左子树中,右边的数组划分到根结点的右子树中,这样就能保证根结点的左子树上任意结点的值都小于根结点的值,右子树上任意结点的值大于根节点的值。接下来,可以使用递归地方法继续取出左边数组的中间值作为根结点的左子结点,右边数组的中间值作为根结点的右子结点,然后以左边数组中间值为中心,再次划分左右子树,右边数组同理,如此递归下去,对于每个结点,总是能保证其左子树上任意结点的值都要小于该节点的值,其右子树上任意结点的值都要大于该节点的值。

Leetcode——第108题相关推荐

  1. [Leetcode][第108题][JAVA][将有序数组转换为二叉搜索树][二分法][递归]

    [问题描述][简单] 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树.本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1.示例:给定有序数组: [- ...

  2. [Leetcode][第109题][JAVA][有序链表转换二叉搜索树][分治][快慢指针][中序遍历]

    [问题描述][中等] [解答思路] 1. 分治 快慢指针 复杂度 class Solution {public TreeNode sortedListToBST(ListNode head) {ret ...

  3. Leetcode重点250题

    LeetCode重点250题 这个重点题目是把LeetCode前400题进行精简.精简方法如下: 删除不常考,面试低频出现题目 删除重复代码题目(例:链表反转206题,代码在234题出现过) 删除过于 ...

  4. LeetCode 简单算法题

    使用Nodejs 抓取的LeetCode 简单算法题  一步一步来,先攻破所有简单的题目,有些题目不适合使用JS解决,请自行斟酌 Letcode 简单题汇总 104. Maximum Depth of ...

  5. 【LeetCode每日一题】——109.有序链表转换二叉搜索树

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[题目提示] 七[解题思路] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 二叉树 二[题 ...

  6. LeetCode每日一题——670. 最大交换

    LeetCode每日一题系列 题目:670. 最大交换 难度:中等 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给定一个非负整数,你至多可以交换一次数字中的任意两位.返回你能 ...

  7. 【Leetcode】 刷题之路1(python)

    leetcode 刷题之路1(python) 看到有大佬总结了一些相关题目,想着先刷一类. 1.两数之和 15.三数之和 16.最接近的三数之和 11.盛最多的水 18.四数之和 454.四数相加II ...

  8. 15.使用一样的BFS方法(代码几乎一模一样)解决多道LeetCode题目--542题(01矩阵)1765题(地图中的最高点)994腐烂的橘子

    一.综述 本文总结自己刷LeetCode中遇到的使用BFS方法解决相同类型的题目.(代码几乎是一模一样) 二.01矩阵(LeetCode第542题) class Solution {int[][] d ...

  9. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  10. 【leetcode】 算法题1 两数之和

    [leetcode] 算法题1 两数之和 问题   给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums ...

最新文章

  1. qt弹簧教程_弹簧启动执行器教程
  2. 鸿蒙硬件HI3861-连接WIFI
  3. Python面试必须要了解的15个问题
  4. html网页url伪静态,静态、动态、伪静态三种URL表形式优缺点介绍
  5. 递归下降分析程序 java_递归下降语法分析程序
  6. AD 中快速查找隐藏NC元器件方法
  7. 加州大学戴维斯计算机博士生,点赞杭电人|我校本科生直博美国加州大学戴维斯分校 获全额奖学金近32万美金...
  8. 渗透测试的介绍和防范
  9. 全志A10/RK2918等七款平板芯片横向PK
  10. 玩拍七不再怕,判断7的倍数有妙招
  11. 8月第四周回顾:四核产品将发口角先起 AMD遭遇跳票流言
  12. python爬取豆瓣电影信息
  13. android 自定义图片裁剪,android 自定义比例裁剪图片(拍照 相册)方式 自定义比例...
  14. ABCD选项的排序方式
  15. 程序员哥哥,你有一枚女朋友请查收。
  16. 信息安全立法现状与形式责任
  17. 存储网络RDMA:NVME over RDMA
  18. 海量活动邀请函模板,在线就能一键出链接
  19. 诺基亚java游戏那种_非诺基亚手机如何玩S40 Java游戏_网易手机频道
  20. 人都说三十六计,我也来贡献一个版本

热门文章

  1. MySql8.0安装教程与时区问题
  2. 【自研IM系统Talk00】 --- 接口说明
  3. android系统与苹果手机号码,苹果手机号码怎么导入另一个手机安卓(全程图解其操作流程)...
  4. BoF and Bos
  5. 自己动手实现简易光线追踪算法
  6. U盘启动盘制作(步骤详细)
  7. VUE基础API总结
  8. Themeforest 热卖 Shopify 主题 六折促销活动进行中
  9. 【dsPIC33】振荡器与定时器
  10. Scikit-learn_聚类算法_K均值聚类