construct all unique BST leetcode