我是golang的新手,对以下内容感到困惑,
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func test() []*TreeNode {
return []*TreeNode{}
}
func test1() []*TreeNode {
return []*TreeNode{nil}
}
我试图在TreeNode上编写一个递归func,但是,如果我使用test
样式来表示叶节点,我将从调用方func获得一个空的TreeNode切片。
如果我使用test1
来表示叶节点,那么行为就是我想要的。
我觉得对于test1
,它给了我一个空TreeNode的点,然而,test
代码给了我nil
的点。。。我不确定我做得对不对。你能给我指一下正确的术语或概念吗?这将非常好。
此外,如果你能让我更多地了解下划线逻辑,那就太好了。
提前谢谢。
这返回一个空切片:
return []*TreeNode{}
这返回一个包含一个元素的切片,该元素是一个零指针:
return []*TreeNode{nil}
但这些都不会给你TreeNode
。第二个指针为零。如何解释这些取决于代码的其余部分,但我怀疑其中任何一个都不是您真正想要的,因为没有一个可以具有val
字段。