(java) Convert Sorted Array to Binary Search Tree
2016-03-06 20:22
531 查看
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
思路:建立一个平衡的二叉搜索树,我们可以以中位数为根,比它小的的是它的左子树,比它大的是它的右子树,将左右子树已同样的方法进行下去,直到左右均没有节点为止
代码如下(已通过leetcode)
public class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if(nums.length==0) return null;
TreeNode root=createAVLBST(0,nums.length-1,nums);
return root;
}
private TreeNode createAVLBST(int low, int high, int[] nums) {
// TODO Auto-generated method stub
if(low==high) return new TreeNode(nums[low]);
else {
if(low>high) return null;
else{
int mid=(low+high)/2;
TreeNode temp=new TreeNode(nums[mid]);
temp.left=createAVLBST(low, mid-1, nums);
temp.right=createAVLBST(mid+1, high, nums);
return temp;
}
}
}
}
思路:建立一个平衡的二叉搜索树,我们可以以中位数为根,比它小的的是它的左子树,比它大的是它的右子树,将左右子树已同样的方法进行下去,直到左右均没有节点为止
代码如下(已通过leetcode)
public class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if(nums.length==0) return null;
TreeNode root=createAVLBST(0,nums.length-1,nums);
return root;
}
private TreeNode createAVLBST(int low, int high, int[] nums) {
// TODO Auto-generated method stub
if(low==high) return new TreeNode(nums[low]);
else {
if(low>high) return null;
else{
int mid=(low+high)/2;
TreeNode temp=new TreeNode(nums[mid]);
temp.left=createAVLBST(low, mid-1, nums);
temp.right=createAVLBST(mid+1, high, nums);
return temp;
}
}
}
}
相关文章推荐
- Java8中Lambda表达式的10个例子
- Java [Leetcode 319]Bulb Switcher
- Java多线程学习(五)
- JAVA词汇大全
- Struts2 图片上传 hibernate保存图片于数据库 。。
- 《JAVA编程思想》日志(六)---------访问权限控制
- JAVA学习第一周博客
- java异常学习
- 小学生之浅谈Struts2与struts1的运行机制
- eclipse配置maven
- IT十八掌作业_java基础第二天_进制转换原理和补码存储方式
- java特种兵读书笔记(6-2)——数据库之主从
- JAVA数据库连接池实现
- 如何执行java程序
- java静态类的执行顺序
- 搭建SpringMVC4.x+Spring4.x+Hibernate4.x(非Maven版)
- Java 引用类解析
- 配置 maven 编译的 JDK 版本
- maven安装以及eclipse配置maven
- 堆排序 java