题目简介:
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 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