标签:
Given n, how many structurally unique BST‘s (binary search trees) that store values 1...n?
For example,
Given n = 3, there are a total of 5 unique BST‘s.
1 3 3 2 1 \ / / / \ 3 2 1 1 3 2 / / \ 2 1 2 3
class Solution { public: int numTrees(int n) { return dfs(1,n); } int dfs(int start, int end) { int leftNum = 0; int rightNum = 0; int num = 0; for ( int i = start; i <= end; i++) //枚举左、右子数节点分配的所有情况 { if(i!=start) leftNum = dfs(start,i-1); //左子树 else leftNum = 1; if(i!=end) rightNum = dfs(i+1,end); //右子树 else rightNum = 1; num += leftNum*rightNum; } return num; } };
96. Unique Binary Search Trees (Tree; DFS)
标签:
原文地址:http://www.cnblogs.com/qionglouyuyu/p/4854388.html