LeetCode-in-All

96. Unique Binary Search Trees

Medium

Given an integer n, return the number of structurally unique BST’s (binary search trees) which has exactly n nodes of unique values from 1 to n.

Example 1:

Input: n = 3

Output: 5

Example 2:

Input: n = 1

Output: 1

Constraints:

Solution

#include <stdio.h>

int numTrees(int n) {
    long result = 1;
    for (int i = 0; i < n; i++) {
        result *= (2L * n - i);
        result /= (i + 1);
    }
    result /= (n + 1);
    return (int) result;
}