首页 > 代码库 > Leetcode-Convert Sorted Array to BST

Leetcode-Convert Sorted Array to BST

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

Solution:

 1 /** 2  * Definition for binary tree 3  * public class TreeNode { 4  *     int val; 5  *     TreeNode left; 6  *     TreeNode right; 7  *     TreeNode(int x) { val = x; } 8  * } 9  */10 public class Solution {11     public TreeNode sortedArrayToBST(int[] num) {12         if (num.length==0)13             return null;14         15         int end = num.length-1;16         TreeNode root = sortedArrayToBSTRecur(num,0,end);17         return root;18     }19     20     public TreeNode sortedArrayToBSTRecur(int[] num, int head, int end){21         if (head==end){22             TreeNode root = new TreeNode(num[head]);23             return root;24         }25         26         if (head+1==end){27             TreeNode root = new TreeNode(num[end]);28             TreeNode child = new TreeNode(num[head]);29             root.left = child;30             return root;31         }32         33         //Calculate the median index.34         int len = end-head;35         int mid = head + len/2 + len%2;36         TreeNode root = new TreeNode(num[mid]);37         TreeNode leftChild = sortedArrayToBSTRecur(num,head,mid-1);38         TreeNode rightChild = sortedArrayToBSTRecur(num,mid+1,end);39         root.left = leftChild;40         root.right = rightChild;41         return root;42     }43 }

 

Leetcode-Convert Sorted Array to BST