给定一个值n,请生成所有的存储值1...n.的二叉搜索树(BST)的结构 例如: 给定n=3,你的程序应该给出下面五种不同的二叉搜索树(BST)
示例1
输入
3
输出
[{1,#,2,#,3},{1,#,3,2},{2,1,3},{3,1,#,#,2},{3,2,#,1}]
加载中...
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param n int整型 * @return TreeNode类ArrayList */ public ArrayList
generateTrees (int n) { // write code here } }
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @param n int整型 * @return TreeNode类vector */ vector
generateTrees(int n) { // write code here } };
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param n int整型 # @return TreeNode类一维数组 # class Solution: def generateTrees(self , n ): # write code here
/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } */ /** * * @param n int整型 * @return TreeNode类一维数组 */ function generateTrees( n ) { // write code here } module.exports = { generateTrees : generateTrees };
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param n int整型 # @return TreeNode类一维数组 # class Solution: def generateTrees(self , n ): # write code here
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * * @param n int整型 * @return TreeNode类一维数组 */ func generateTrees( n int ) []*TreeNode { // write code here }
3
[{1,#,2,#,3},{1,#,3,2},{2,1,3},{3,1,#,#,2},{3,2,#,1}]