golang中怎么生成一个tree
发布时间:2023-05-16 12:04:14
在golang中生成一个树可以使用指针和结构体来完成。下面是一个简单的示例:
定义结构体:
type Node struct {
Val int
Left *Node
Right *Node
}
使用递归来生成树:
func generateTree(start, end int) []*Node {
if start > end {
return []*Node{nil}
}
var res []*Node
for i := start; i <= end; i++ {
left := generateTree(start, i-1)
right := generateTree(i+1, end)
for _, l := range left {
for _, r := range right {
root := &Node{Val: i}
root.Left = l
root.Right = r
res = append(res, root)
}
}
}
return res
}
这个函数生成的是从1到n的不同二叉搜索树,其中n是输入的参数。返回一个切片,其中包含了所有可能的根节点。
