Convert Sorted Array to Binary Search Tree(将有序数组转为二叉搜索树)
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
1.问题描述
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of everynode never differ by more than 1.
Example:
Given the sorted array: [-10,-3,0,5,9],
One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:
0/ \-3 9/ /-10 5
2.解法
二叉搜索树如果按中序遍历,得到的是一个有序数组。那么反过来易知,根节点应该是有序数组的中间点,从中间点分开为左右两个有序数组,在分别找出其中间点作为原中间点的左右两个子节点,本质上是二分查找的思想。
3.java版本
import java.util.*;/*** Created by wanglei on 19/4/14.*/
public class ArrayToBST {public static TreeNode buildTree(int[] nums) {TreeNode root = null;if (nums.length > 0) {int midPos = nums.length / 2;int mid = nums[midPos];root = new TreeNode(mid);root.left = buildTree(Arrays.copyOfRange(nums, 0, midPos));root.right = buildTree(Arrays.copyOfRange(nums, midPos+1, nums.length));}return root;}public static void preTraverse(TreeNode root) {if (root != null) {preTraverse(root.left);System.out.println(root.data);preTraverse(root.right);}}public static void main(String[] args) {int[] nums = {-10, -3, 0, 5, 9};TreeNode root = buildTree(nums);preTraverse(root);}
}
4.python版本
class TreeNode(object):def __init__(self, val):self.val = valself.left = Noneself.right = Nonedef sortedArrayToBST(nums):if nums:midPos = len(nums) / 2mid = nums[midPos]root = TreeNode(mid)root.left = sortedArrayToBST(nums[:midPos])root.right = sortedArrayToBST(nums[midPos+1:])return rootdef printTree(root):if root:printTree(root.left)print root.valprintTree(root.right)nums = [-10, -3, 0, 5, 9]
root = sortedArrayToBST(nums)
printTree(root)
Convert Sorted Array to Binary Search Tree(将有序数组转为二叉搜索树)相关推荐
- Convert Sorted Array to Binary Search Tree - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Convert Sorted Array to Binary Search Tree - LeetCode 注意点 不要访问空结点 题目要求的是平衡二叉搜 ...
- 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 ...
- 【数组递归构造二叉树】LeetCode 108. Convert Sorted Array to Binary Search Tree
LeetCode 108. Convert Sorted Array to Binary Search Tree Solution1:我的答案 构造二叉树利用递归 /*** Definition fo ...
- leetcode python3 简单题108. Convert Sorted Array to Binary Search Tree
1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第一百零八题 (1)题目 英文: Given an array where elem ...
- PAT甲级1043 Is It a Binary Search Tree :[C++题解]判断二叉搜索树BST、给定前序序列和中序序列
文章目录 题目分析 题目链接 题目分析 二叉搜索树(BST):左子树小于根结点,右子树大于等于根结点. 二叉搜索树的中序遍历一定是有序序列.所谓中序遍历:先访问左子树,再访问根结点,最后访问右子树. ...
- 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. ...
- 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 ...
- [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 ...
- [LeetCode]Convert Sorted Array to Binary Search Tree
题目描述:(链接) Given an array where elements are sorted in ascending order, convert it to a height balanc ...
- Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 首先 ...
最新文章
- caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
- 雷克世界:Gyrfalcon加入芯片角斗场,又一款改变AI界的产品问世
- Andriod anim translate中的属性介绍
- linux下前一天时间格式
- IT项目经理学习-德鲁克时间管理
- LeetCode 65. 有效数字(逻辑题,难)
- python生成10个随机数字符串_python生成随机数、随机字符串
- JavaScript巧学巧用
- Deepracer 学了就能云驾驭赛车? Deepracer机器学习进阶版干货分享!
- flash的计算机知识,Flash CS6计算机动画设计教程
- 前端H5面试题CSS:如何解决 margin“塌陷”?
- 道客巴巴 文档免积分保存方法
- Ruby on rails 实战圣经:Ruby程序语言入门
- (Research)肝肿瘤免疫微环境亚型和中性粒细胞异质性
- 使用NLTK对文档进行分句
- 惠普P1100 series “打印机安装失败,未安装打印机”问题解决方法
- FlexRay AUTOSAR网络管理(AUTOSARFRNM)简介
- [转帖]Photoshop制作梦幻效果婚纱照片
- 建设DevOps统一运维监控平台,全面的系统监控你做好了吗?
- 一文解释电路中常用电子元器件应用和选型01