Convert Sorted Array to Binary Search Tree

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

public TreeNode sortedArrayToBST(int[] num) {
    if(num == null || num.length == 0) return null;

    int start = 0, end = num.length - 1;

    TreeNode root = buildTree(num, start, end);

    return root;
}

public TreeNode buildTree(int[] num, int start, int end) {
    if(start > end) return null;

    int mid = (start + end) / 2;

    // build left sub tree
    TreeNode left = buildTree(num, start, mid - 1);
    // build root of the subtree
    TreeNode node = new TreeNode(num[mid]);

    node.left = left;
    // build right sub tree
    node.right = buildTree(num, mid + 1, end);

    return node;
}

results matching ""

    No results matching ""