review dynamic program problem Unique BST