title: How to construct Binary Search Tree bottom-up
body: <p>Given a sorted array, it is very easy to visualize a BST from it in a top-down manner. For example, if the array is <code>[1,2,3,4,5,6,7]</code>, we can see that the root will be the middle element, that is <code>4</code>. To its left there will be a subtree whose root is the middle of the array slice to the left of <code>4</code>, that is <code>2</code>. In the same way it will be similar in the right also.</p>
  
  <p>How can we do this visualization for the bottom-up approach to constructing the BST? Basically I am trying to understand the algorithm to construct a BST from a sorted linked list, which takes <code>O(N)</code> in bottom-up manner, and <code>O(Nlog N)</code> in topdown manner. So I need to understand how it builds bottom-up.</p>