LeetCode_Convert Sorted Array to Binary Search Tree(Java实现)
题目描述:
给出一个升序排序的数组,将其转化为平衡二叉搜索树(BST).
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
对于此问题,将高度平衡的二叉树定义为一个二叉树,其中每个节点的两个子树的深度相差不超过1。
例:
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
主要思想:
把一个有序数组转化为一棵二叉搜索树,二叉搜索树(BST)具有以下性质:
- 若其左子树存在,则其左子树中每个节点的值都不大于该节点值;
- 若其右子树存在,则其右子树中每个节点的值都不小于该节点值。
示例:
因此,可以用递归来构建一棵二叉搜索树,每次把数组分为两半,把数组中间的值作为其父节点,然后把数组的左右两部分进行递归,继续构造其左右子树。
实现代码:
/*** Definition for binary tree* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
public class Solution {public TreeNode sortedArrayToBST(int[] num) {if ((num == null) || (num.length == 0)) {return null;}return helper(num, 0, num.length - 1);}private TreeNode helper(int[] num, int left, int right) {if (left > right) {return null;}int mid = (left + right + 1) >> 1;TreeNode node = new TreeNode(num[mid]);node.left = helper(num, left, mid - 1);node.right = helper(num, mid + 1, right);return node;}
}
注意:在牛客网上的环境下,mid = (left + right + 1) / 2,如果没有 +1,不能通过所有的测试样例;
LeetCode_Convert Sorted Array to Binary Search Tree(Java实现)相关推荐
- 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 ...
- Convert Sorted Array to Binary Search Tree - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Convert Sorted Array to Binary Search Tree - LeetCode 注意点 不要访问空结点 题目要求的是平衡二叉搜 ...
- 【数组递归构造二叉树】LeetCode 108. Convert Sorted Array to Binary Search Tree
LeetCode 108. Convert Sorted Array to Binary Search Tree Solution1:我的答案 构造二叉树利用递归 /*** Definition fo ...
- 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 108. Convert Sorted Array to Binary Search Tree | 108. 将有序数组转换为二叉搜索树(Java)
题目 https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 题解 经典二分,不解释了,直接看代码 /*** ...
- [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 balanced BST. 题解 ...
- [LeetCode]Convert Sorted Array to Binary Search Tree
题目描述:(链接) Given an array where elements are sorted in ascending order, convert it to a height balanc ...
最新文章
- 用SRS和FFMPEG进行直播流转码
- js word 预览_微软补丁日:Word/DHCP/LNK远程代码执行漏洞预警
- 用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API
- 坚实原则:接口隔离原则
- ubuntu下如何查找某个文件的路径
- e.html5.qq.com,QQ群官网-开放能力
- “not a single-group group function”
- 【Spring】模块
- [转]调整 VirtualBox 虚拟机的磁盘大小
- python if else elif_Python之 if-elif-else
- 现代测试技术与软件关系大吗,现代测试技术及应用学习心得
- C#高级编程(第七版)读书笔记(4)——对象和类型
- 转:Vss2005局域网开发权限设置指南
- empty string什么错误_go语言的interface为什么好用?
- 远程设备运维云平台软件与常规组态软件的区别(V1.1)?
- MPQ4420HGJ DCDC电源设计+SIMetrix+Spice仿真模型
- 组态TwinCat软件安装时,There are some files marked for deletion on next reboot.Please reboot first and then
- 城市内涝监测预警系统
- 游戏服务端究竟解决了什么问题
- 什么是长元音和短元音
热门文章
- python定义map数据_「每日一练」巧用Python处理列表中的数据
- 请求成功得到返回数据还是走到catch_面试:SpringMVC在接收到请求后的调用细节是什么?...
- c语言 中insert变量值,c – 在VS2010中的vector :: insert执行意外结果
- java 代码块的作用_Java核心(三):代码块的作用
- Centos7.6下安装Python3.7
- Go 采用 time.After 实现超时控制
- C++向量 vector动态数组
- socket层内容详解二
- zepto和jquery的区别,zepto的不同使用8条小结
- HTML 表格tablecaptionthtrtdtheadtbodytfootcolcolgroup