给定一个值n,请生成所有的存储值1...n.的二叉搜索树(BST)的结构
例如:
给定n=3,你的程序应该给出下面五种不同的二叉搜索树(BST)
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; left = null; right = null; }
* }
*/
import java.util.ArrayList;
public class Solution {
public ArrayList<TreeNode> help(int start, int end){
ArrayList<TreeNode> result = new ArrayList<TreeNode>();
if(start> end){
result.add(null);//关键的地方在这里,真的很关键,解决有有一遍子树为null的情况
return result;
}
for(int i=start; i<= end; i++){
ArrayList<TreeNode> resultLeft = help(start, i-1);
ArrayList<TreeNode> resultRight = help(i+1, end);



京公网安备 11010502036488号