Unique Binary Search Trees II

来源:互联网 发布:视频剪辑合成软件app 编辑:程序博客网 时间:2024/04/30 04:11
    public ArrayList<TreeNode> generateTrees(int n) {        // Start typing your Java solution below        // DO NOT write main() function        return generateTrees(1, n);    }        public ArrayList<TreeNode> generateTrees(int start, int end) {        ArrayList<TreeNode> result = new ArrayList<TreeNode>();        if(start > end) {            result.add(null);            return result;        }        for(int i = start; i <= end; i++)             for(TreeNode left : generateTrees(start, i - 1))                 for(TreeNode right : generateTrees(i + 1, end)) {                    TreeNode root = new TreeNode(i);                    root.left = left;                    root.right = right;                    result.add(root);                }        return result;    }