您的位置:首页 > 编程语言 > Java开发

convert sorted array to binary search tree

2014-02-05 12:55 369 查看
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

要比convert sorted linked list简单

/**
* 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) {
int len = num.length;
if(len == 0) return null;
return sortedArrayToBST(num,0,len-1);

}
public TreeNode sortedArrayToBST(int a[], int left, int right){
if(left>right) return null;

int mid = (left+right)/2;

TreeNode parent = new TreeNode(a[mid]);

TreeNode leftC = sortedArrayToBST(a,left,mid-1);
parent.left = leftC;
TreeNode rightC = sortedArrayToBST(a,mid+1,right);
parent.right = rightC;

return parent;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java BST