首页 > 其他 > 详细

LeetCode Unique Binary Search Trees II

时间:2014-07-27 23:28:19      阅读:357      评论:0      收藏:0      [点我收藏+]
class Solution {
private:
    vector<TreeNode *> res;
public:
    vector<TreeNode *> generateTrees(int n) {
        res.clear();
        res = dfs(1, n + 1);
        return res;
    }

    vector<TreeNode*> dfs(int start, int end) {
        vector<TreeNode*> res;
        if (start >= end) {
            res.push_back(NULL);
            return res;
        }
        TreeNode* rt = NULL;
        for (int i=start; i<end; i++) {
            vector<TreeNode*> lsub = dfs(start, i);
            vector<TreeNode*> rsub = dfs(i+1, end);

            for (int li=0; li<lsub.size(); li++) {
                for (int ri=0; ri<rsub.size(); ri++) {
                    rt = new TreeNode(i);
                    rt->left = lsub[li];
                    rt->right= rsub[ri];
                    res.push_back(rt);
                }
            }
        }
        return res;
    }
};

递归真是个好东西!

LeetCode Unique Binary Search Trees II,布布扣,bubuko.com

LeetCode Unique Binary Search Trees II

原文:http://www.cnblogs.com/lailailai/p/3872022.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!