BST: construct a balanced BST from a sorted linked list