Create Unique Binary Search Trees II

pick a number as the root, and recursively generate the left and right subtree, then pair all the combinations of left and right subtrees with the root, then put all the possible result in the result list and return.