题解 | #不同的二叉搜索树(二)#
不同的二叉搜索树(二)
https://www.nowcoder.com/practice/0082df531c4147408a72caf9ab167c8f
package main //import "fmt" import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return TreeNode类一维数组 */ func BSTgenerate( n int ) []*TreeNode { arr:=make([]int,n) for i,_:=range arr{ arr[i]=i+1 } var order func([]int)[]*TreeNode order=func(arr []int)[]*TreeNode{ if len(arr)==0{ return []*TreeNode{nil} } if len(arr)==1{ return []*TreeNode{&TreeNode{Val:arr[0]}} } ans:=[]*TreeNode{} for i,x:=range arr{ l:=order(arr[:i]) r:=order(arr[i+1:]) for _,p:=range l{ for _,q:=range r{ ans=append(ans,&TreeNode{x,p,q}) } } } return ans } return order(arr) }