唯一二叉搜索树

2018-12-06  本文已影响0人  静水流深ylyang

版权声明:本文为博主原创文章,转载请注明出处。
个人博客地址:https://yangyuanlin.club
欢迎来踩~~~~


int numTrees(int n)
{
    if(n == 0)return 1;
    if(n == 1)return 1;
    int res = 0;
    for(int i = 0; i < n; i++)
    {
        // 假设当前的根节点是i+1(从0开始,root结点值应该加一)
        // 则左子树有0~i个,右子树是(i+2)~n个
        res += numTrees(i) * numTrees(n-i-1);
    }
    return res;
}
int numTrees(int n) {
    int* res = new int[n+1];
    res[0] = 1;
    res[1] = 1;
    for(int i = 2; i <= n; i++)
    {
        res[i] = 0;
        for(int j = 0; j < i; j++)
        {
            res[i] += res[j] * res[i-j-1];
        }//for
    }//for
    return res[n];
}

版权声明:本文为博主原创文章,转载请注明出处。
个人博客地址:https://yangyuanlin.club
欢迎来踩~~~~


上一篇 下一篇

猜你喜欢

热点阅读