题目简介:
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例:
1 | 给定有序数组: [-10,-3,0,5,9], |
思路:
这题其实相当于给你一个中序遍历的序列,让你还原出二叉搜索树。
首先每次选择数组中间的点作为每个子树的根节点(保证左右子树的高度平衡)。
再递归构建左右子树即可。
tip:
- 注意每次数组的左右边界问题
代码如下:
1 | /** |
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例:
1 | 给定有序数组: [-10,-3,0,5,9], |
这题其实相当于给你一个中序遍历的序列,让你还原出二叉搜索树。
首先每次选择数组中间的点作为每个子树的根节点(保证左右子树的高度平衡)。
再递归构建左右子树即可。
tip:
1 | /** |
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: true tags: true