class Solution:
# @param {integer} n
# @return {integer}
def numTrees(self, n):
dp = [0]*(n+1); dp[0] = 1
for nodeNum in range(1,n+1):
for k in range(nodeNum):
dp[nodeNum] += dp[k] * dp[nodeNum - 1 - k]
return dp[n]