题解 | #将升序数组转化为平衡二叉搜索树#
将升序数组转化为平衡二叉搜索树
http://www.nowcoder.com/practice/7e5b00f94b254da599a9472fe5ab283d
public class Solution { public static void main(String[] args) { Solution solution = new Solution(); int[] arr = {-1,0,1,2}; TreeNode treeNode = solution.sortedArrayToBST(arr); treeNode.print(); }
public TreeNode sortedArrayToBST (int[] num) {
// write code here
if (num.length == 0){
return null;
}
return buildTreeNode(num, 0, num.length);
}
private TreeNode buildTreeNode(int[] num, int left, int right){
if (left >= right){
return null;
}
int mid = (left + right) >> 1;
int rootValue = num[mid];
TreeNode treeNode = new TreeNode();
treeNode.val = rootValue;
treeNode.right = buildTreeNode(num, mid + 1, right);
treeNode.left = buildTreeNode(num, left, mid);
return treeNode;
}
}
class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;
public void print(){
System.out.print(this.val + " ");
if (this.left != null){
this.left.print();
}
if (this.right != null){
this.right.print();
}
}
}
正浩创新EcoFlow公司福利 704人发布