DifferentBinarySearchTreesII题目描述:给定一个整数n,请生成并返回所有n个节点值从1到n不同的二叉搜索树。可以按任何顺序返回答案。二叉搜索树(BinarySearchTree):也称为二叉排序树,它要么是一棵空树,要么是一棵二叉树,具有以下性质:如果它的左子树不为空,则左子树上所有节点的值节点小于其根节点的值;如果它的右子树不为空,则右子树上所有节点的值都大于它的根节点的值;它的左右子树也是一棵有序的二叉树。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:递归的方法首先,当n为0时,结果是一棵空树,直接返回一个空列表。当n大于0时,用递归的方法分别得到左右子树。递归过程如下:所有节点都可以作为根节点,即遍历1到n的所有值作为根节点,当前根节点为i;然后i左边的所有值作为i的左子树递归调用方法;i右边的所有值递归调用方法作为i的右子树;最后把根节点i和对应的左右子树拼成一棵树,放到结果集中。最后返回的结果集是所有可能的二叉搜索树。importcom.kaesar.leetcode.TreeNode;importjava.util.ArrayList;importjava.util.List;publicclassLeetCode_095{/***递归**@paramn*@return*/publicstaticList
