[Leetcode 108]有序数组转BST二叉搜索树Convert Sorted Array to Binary Search Tree
题目
https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree.
A height-balanced binary tree is a binary tree in which the depth of the two subtrees of every node never differs by more than one.
Example 1:

Input: nums = [-10,-3,0,5,9]
Output: [0,-3,9,-10,null,5]
Explanation: [0,-10,5,null,-3,null,9] is also accepted:

Example 2:

Input: nums = [1,3]
Output: [3,1]
Explanation: [1,3] and [3,1] are both a height-balanced BSTs.
思路
二叉搜索树:中序遍历生成的数组就是升序排列的
因为 depth of the two subtrees of every node never differs by more than one.高度差不超过1
我们以中间作为根节点,这样能尽量平衡,分成左右俩部分dfs即可
1 2 【3】 4 5
1 2 3 【4】 5 6
代码
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if (nums.length==0){
return null;
}
return fun(nums,0,nums.length-1);
}
public TreeNode fun(int[] nums,int left,int right){
if(left>right)
return null;
int mid=left+(right-left)/2;//找到根节点
TreeNode root=new TreeNode(nums[mid]);
//分成两个部分,[left,根节点-1][根节点+1,right]
root.left=fun(nums,left,mid-1);
root.right=fun(nums,mid+1,right);
return root;
}
}
[Leetcode 108]有序数组转BST二叉搜索树Convert Sorted Array to Binary Search Tree的更多相关文章
- LeetCode 108. 将有序数组转换为二叉搜索树(Convert Sorted Array to Binary Search Tree) 14
108. 将有序数组转换为二叉搜索树 108. Convert Sorted Array to Binary Search Tree 题目描述 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索 ...
- [Swift]LeetCode108. 将有序数组转换为二叉搜索树 | Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Fo ...
- [Leetcode 108]有序数组转二叉搜索树Convert Sorted Array to Binary Search Tree
[题目] 给出的升序排序的数组,个数必为奇数,要求形成二叉搜索(平衡)树. [思路] 辅助函数fun,[0,len]=>[0,mid-1]+[mid+1,len]. 当left>right ...
- [Swift]LeetCode109. 有序链表转换二叉搜索树 | Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- [LeetCode 109] - 将已排序链表转换为二叉搜索树 (Convert Sorted List to Binary Search Tree)
问题 给出一个元素以递增序列排序的单链表,将其转换为一棵高度平衡的二叉搜索树. 初始思路 二叉搜索树高度平衡,意味着左右子树的高度要平衡.根据二叉树左子树节点小于根节点,右子树节点大于根节点的性质:我 ...
- LeetCode 108. Convert Sorted Array to Binary Search Tree (将有序数组转换成BST)
108. Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascendin ...
- [LeetCode] 108. Convert Sorted Array to Binary Search Tree ☆(升序数组转换成一个平衡二叉树)
108. Convert Sorted Array to Binary Search Tree 描述 Given an array where elements are sorted in ascen ...
- 108. Convert Sorted Array to Binary Search Tree 109. Convert Sorted List to Binary Search Tree -- 将有序数组或有序链表转成平衡二叉排序树
108. Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascendin ...
- 37. leetcode 108. Convert Sorted Array to Binary Search Tree
108. Convert Sorted Array to Binary Search Tree 思路:利用一个有序数组构建一个平衡二叉排序树.直接递归构建,取中间的元素为根节点,然后分别构建左子树和右 ...
- leetcode 108. Convert Sorted Array to Binary Search Tree 、109. Convert Sorted List to Binary Search Tree
108. Convert Sorted Array to Binary Search Tree 这个题使用二分查找,主要要注意边界条件. 如果left > right,就返回NULL.每次更新的 ...
随机推荐
- centos8.5安装kvm及kvm虚拟机的端口映射问题
1.安装KVM grep -Ei 'vmx|svm' /proc/cpuinfo|more #查看硬件是否支持虚拟化 yum install -y virt-* libvirt qemu-img ...
- SecureCRT保存日志
1.打开Options->Session Options...,选择LogFile 2.Log file name格式 %H_%S_%Y%M%D-%h%m%s.log 参数说明: %H---主机 ...
- flink udaf函数
1.Flink-sql自定义UDAF函数 - 简书 (jianshu.com) 2.Flink SQL 自定义UDAF_k_wzzc的博客-CSDN博客_flink udaf 3.Flink 实践教程 ...
- javax.naming.NameNotFoundException: Name [aa.bb.cc/xx] is not bound in this Context. Unable to find [aa.bb.cc]
今天尝试把一个SpringBoot项目由jdk11转移为jdk8,在IDEA里运行一切正常.打包,部署到tomcat启动后,在客户端调用WebSocket出现如下异常: java.lang.Illeg ...
- java8 检查
// 检查放款日期 boolean allMatch = cdiscountMonthBillDetails.stream().map(CdiscountMonthBillDetail::getTra ...
- PHPStudy设置局域网访问
PHPStudy是一款轻量级PHP服务器,搭建环境迅速.但是与XAMPP之类服务器不同的是,PHPStudy默认只有本机才能设置域名.访问网站.需要更改vhost.conf中的文件,才可以使得内网可以 ...
- HttpClient详细使用示例(转)
https://blog.csdn.net/justry_deng/article/details/81042379
- mybatis查询返回多条数据
返回User类型的list <select id="queryAllUser" resultType="org.example.entity.User"& ...
- kibana启动时报错:Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [999]/[1000] maximum shards open
解决方案: curl -XPUT -H "Content-Type:application/json" -d '{"persistent":{"clu ...
- Centos使用nohup实现后台运行程序
nohup和&的区别& : 指在后台运行 nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断 ...