这道题是要将有序数组转为二叉搜索树,所谓二叉搜索树,是一种始终满足左<根<右的特性,如果将二叉搜索树按中序遍历的话,得到的就是一个有序数组了。那么反过来,我们可以得知,根节点应该是有序数组的中间点,从中间点分开为左右两个有序数组,在分别找出其中间点作为原中间点的左右两个子节点,这不就是是二分查找法的核心思想么。所以这道题考的就是二分查找法,代码如下:

中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游。在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。

思路: 找到列表中间位置的元素作为整棵树的根结点,然后递归建立子树,左叶子从列表的左半部分从后往前取,右叶子从列表的右半部分从前往后取,这样就能保证任意一个子树的左叶子小于根结点小于右叶子,即为平衡二叉搜索树。

class Solution:def sortedArrayToBST(self, nums: List[int]) -> TreeNode:if not nums:return Nonemid=len(nums)//2root=TreeNode(nums[mid])root.left=self.sortedArrayToBST(nums[:mid])root.right=self.sortedArrayToBST(nums[mid+1:])return root
class Solution:def sortedArrayToBST(self, nums: List[int]) -> TreeNode:if not nums:return Nonemid = len(nums)//2root = TreeNode(nums[mid])root.left =self.sortedArrayToBST(nums[:mid])root.right = self.sortedArrayToBST(nums[mid + 1:])return root

Convert Sorted Array to Binary Search Tree 将有序数组转为二叉搜索树相关推荐

  1. Convert Sorted Array to Binary Search Tree - LeetCode

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

  2. 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 ...

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

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

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

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

  5. PAT甲级1043 Is It a Binary Search Tree :[C++题解]判断二叉搜索树BST、给定前序序列和中序序列

    文章目录 题目分析 题目链接 题目分析 二叉搜索树(BST):左子树小于根结点,右子树大于等于根结点. 二叉搜索树的中序遍历一定是有序序列.所谓中序遍历:先访问左子树,再访问根结点,最后访问右子树. ...

  6. 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. ...

  7. Convert Sorted Array to Binary Search Tree With Minimal Height

    Given a sorted (increasing order) array, Convert it to create a binary tree with minimal height. Exa ...

  8. [LeetCode] Convert Sorted Array to Binary Search Tree

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

  9. [LeetCode]Convert Sorted Array to Binary Search Tree

    题目描述:(链接) Given an array where elements are sorted in ascending order, convert it to a height balanc ...

  10. Convert Sorted Array to Binary Search Tree

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

最新文章

  1. 10 ping不通widwos7 windwos_弱电老司机总结的10种视频监控系统故障解决方法,学会,事半功倍...
  2. 4道Python基础文件操作函数 练习题
  3. 归纳DOM事件中各种阻止方法
  4. IPython Notebook简介1
  5. django models 文件夹
  6. 扫地机自动回充揭秘 之开启篇
  7. C#之xml配置文件读写
  8. Atitit 怎么阅读一本书 消化 分析 检索 attilax总结 1. 读书的本质 是数据的处理,大量的数据,处理能力有限的大脑 2 2. ETL数据清洗转换 摘要,缩小数据规模 2 2.1
  9. linux vsftpd 配置及使用详解
  10. qtp如何软件测试,QTP—Windows程序测试
  11. EXCEL等额本息还款计算器
  12. 【Java对象转换】002- Java 对象与 Map 互转
  13. ipython怎么安装_如何装ipython
  14. 白杨SEO:品牌口碑业务指什么?企业品牌口碑如何推广与预防公关危机?
  15. ajax中怎样获取下拉列表,如何从Ajax/Jquery的下拉列表中获取复选框中的数据
  16. Lattice并购案我国FPGA发展路径
  17. Audio Codec介绍
  18. 滴滴公布自查进展:免去黄洁莉顺风车事业部总经理职务
  19. git中无法拉取remote仓库中的更新(Untracked Files Prevent Merge)
  20. H.265/HEVC学习笔记:帧内预测编码

热门文章

  1. Java—读取指定路径下文件的内容
  2. 常用排序算法:桶排序
  3. 关于Quartz 2D绘图的简单使用
  4. Inno Setup脚本
  5. BackgroundWorker 简单使用教程 多个线程的创建
  6. java io知识点汇总FIle类
  7. 基于OSSIM平台下华为交换机日志收集插件的开发
  8. vs多项目模板及add-in开发
  9. static在实例Extends、Overload中理解
  10. spring3 运行起来(即做个demo)所需要的jar包