Unique Binary Search Trees

来源:互联网 发布:cf不掉血软件下载 编辑:程序博客网 时间:2024/05/16 08:16

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 numTrees(1,n);    }private:    int numTrees(int low,int high){        int total = 0;        if(low>high) return 0;        if(low==high) return 1;        for(int i=low;i<=high;++i){            int left = numTrees(low,i-1);            int right = numTrees(i+1,high);            left = left==0 ? 1:left;            right = right==0 ? 1:right;            total += left*right;        }        return total;    }};

0 0
原创粉丝点击