LeetCode-Unique Binary Search Trees II

来源:互联网 发布:淘宝订单能保存多久 编辑:程序博客网 时间:2024/05/16 12:44
作者:disappearedgod
文章出处:http://blog.csdn.net/disappearedgod/article/details/30501561
时间:2014-6-13

题目

Unique Binary Search Trees II

 Total Accepted: 8585 Total Submissions: 32156My Submissions

Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.

For example,
Given n = 3, your program should return all 5 unique BST's shown below.

   1         3     3      2      1    \       /     /      / \      \     3     2     1      1   3      2    /     /       \                 \   2     1         2                 3

c


解法

public class Solution {    public List<TreeNode> generateTrees(int n) {        List<TreeNode> list = new ArrayList<TreeNode>();        return generateTrees(0,n-1);           }    public List<TreeNode> generateTrees(int start, int end) {        List<TreeNode> list = new ArrayList<TreeNode>();        if(start > end){            list.add(null);            return list;        }        List<TreeNode> leftSubTree = new ArrayList<TreeNode>();        List<TreeNode> rightSubTree = new ArrayList<TreeNode>();        for(int i = start; i <= end; i++){            leftSubTree = generateTrees(start, i-1);            rightSubTree = generateTrees(i+1, end);            for(int j = 0; j < leftSubTree.size(); j++){                for(int k = 0; k < rightSubTree.size(); k++){                    TreeNode n = new TreeNode(i + 1);                    n.left = leftSubTree.get(j);                    n.right = rightSubTree.get(k);                    list.add(n);                }            }        }        return list;    }    }

Submit TimeStatusRun TimeLanguage1 minute agoAccepted508 msjava

返回

LeetCode Solution(持续更新,java>c++)


0 0